2012-08-07 33 views
10

Làm thế nào để tạo một cơ sở dữ liệu nhỏ và đơn giản bằng cách sử dụng Oracle 11 g và SQL Developer? Tôi thấy quá nhiều lỗi và tôi không thể tìm thấy bất kỳ cách nào để tạo một cơ sở dữ liệu đơn giản. Ví dụLàm thế nào để tạo ra một cơ sở dữ liệu nhỏ và đơn giản bằng cách sử dụng Oracle 11 g và SQL Developer?

create database company; 

gây ra các lỗi sau:

Error starting at line 1 in command: 
create database company 
Error at Command Line:1 Column:0 
Error report: 
SQL Error: ORA-01501: CREATE DATABASE failed 
ORA-01100: database already mounted 
01501. 00000 - "CREATE DATABASE failed" 
*Cause: An error occurred during create database 
*Action: See accompanying errors. 

Edit- này là hoàn toàn khác biệt so với MySQL và MS-SQL mà tôi quen thuộc với. Không trực quan như tôi mong đợi.

+2

Tạo một DB trong MySQL và MS-SQL có vẻ dễ dàng hơn nhiều so với trong Oracle. Oracle có thực sự khó khăn không? –

Trả lời

20

Trước hết, những gì Oracle gọi là "cơ sở dữ liệu" thường khác với những gì hầu hết các sản phẩm cơ sở dữ liệu khác gọi là "cơ sở dữ liệu". Một "cơ sở dữ liệu" trong MySQL hoặc SQL Server gần gũi hơn với những gì Oracle gọi là "lược đồ" là tập hợp các đối tượng thuộc sở hữu của một người dùng cụ thể. Trong Oracle, bạn thường chỉ có một cơ sở dữ liệu cho mỗi máy chủ (một máy chủ lớn có thể có một số cơ sở dữ liệu trên đó), nơi mỗi cơ sở dữ liệu có nhiều lược đồ khác nhau. Nếu bạn đang sử dụng phiên bản Express của Oracle, bạn chỉ được phép có 1 cơ sở dữ liệu trên mỗi máy chủ. Nếu bạn được kết nối với Oracle thông qua SQL Developer, điều đó cho biết rằng bạn đã có cơ sở dữ liệu Oracle được tạo.

Giả sử rằng bạn thực sự muốn tạo ra một lược đồ, không phải là một cơ sở dữ liệu (sử dụng Oracle ngữ), bạn sẽ tạo cho người sử dụng

CREATE USER company 
    IDENTIFIED BY <<password>> 
    DEFAULT TABLESPACE <<tablespace to use for objects by default>> 
    TEMPORARY TABLESPACE <<temporary tablespace to use>> 

Sau đó, bạn sẽ chỉ định người dùng bất cứ đặc quyền bạn muốn

GRANT CREATE SESSION TO company; 
GRANT CREATE TABLE TO company; 
GRANT CREATE VIEW TO company; 
... 

Khi đã xong, bạn có thể kết nối với cơ sở dữ liệu (hiện có) là COMPANY và tạo đối tượng trong lược đồ COMPANY.

+0

Tôi hoàn toàn bị mất. Tôi thấy một kết nối. Khi tôi mở rộng nó, tôi thấy Bảng, Lượt xem, , những người dùng khác. Vì vậy, làm thế nào để tôi tạo ra một "cơ sở dữ liệu" của nhân viên (không phải công ty cho bây giờ) với bảng emp Id, tên, tuổi? –

+0

@sweetdreams - Bạn không tạo "cơ sở dữ liệu" (sử dụng thuật ngữ Oracle). Bạn tạo một lược đồ. Để tạo lược đồ, bạn tạo người dùng sẽ sở hữu các đối tượng trong lược đồ. Sau đó, bạn tạo các bảng, các khung nhìn, v.v. là một phần của lược đồ. Bạn chỉ muốn tạo một bảng 'Employee' với các cột' emp_id', 'name' và' age'? –

+1

Nếu không có khái niệm về "cơ sở dữ liệu", thì tại sao tài liệu Oracle DB có một câu lệnh tạo cơ sở dữ liệu? Cho phép nói chuyện trong MySQL bây giờ - đây là những gì tôi muốn làm - tạo cơ sở dữ liệu được gọi là Công ty. Tạo một bảng các nhân viên bên trong nó. Nhân viên có id cột, tên, độ tuổi, v.v. Bạn có thể dịch điều này sang Oracle SQL không? –

1

Từ mô tả câu hỏi của bạn, tôi nghĩ bạn đã tạo một lược đồ cơ sở dữ liệu, không phải là một cá thể cơ sở dữ liệu. Trong thuật ngữ Oracle, một cá thể cơ sở dữ liệu là tập các tệp trong hệ thống tệp. Nó giống như các tệp dữ liệu trong MySQL. Trong khi đó, cơ sở dữ liệu trong MySQL có phần tương đương với lược đồ của Oracle.

Để tạo một schema trong Oracle: https://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_6014.htm

Để tạo một đối tượng cơ sở dữ liệu Oracle (Cá nhân tôi thích CDBA): https://docs.oracle.com/cd/E11882_01/server.112/e25494/create.htm#ADMIN11068

Thông báo phiên bản Oracle Express không hỗ trợ gắn dụ nhiều hơn một cơ sở dữ liệu cùng một lúc.

0

Thực ra câu trả lời từ Justin ở trên có thể không chính xác hơn. SQL Server và MySQL là dành cho các cơ sở dữ liệu nhỏ. Oracle là dành cho các cơ sở dữ liệu doanh nghiệp lớn, do đó sự khác biệt trong cấu trúc của nó. Và thường có nhiều hơn một cơ sở dữ liệu Oracle trên một máy chủ với điều kiện máy chủ đủ mạnh để xử lý tải. Nếu bạn nhận được lỗi được đăng ở trên thì rõ ràng là bạn đang cố tạo một cơ sở dữ liệu Oracle mới và nếu bạn đang làm điều đó thì có thể bạn đã hiểu cấu trúc của một cơ sở dữ liệu Oracle. Kịch bản có khả năng là bạn đã cố tạo một cơ sở dữ liệu bằng dbca, ban đầu nó không thành công, nhưng các tệp nhị phân đã được tạo. Sau đó, bạn đã điều chỉnh các tham số ban đầu của mình và thử tạo lại cơ sở dữ liệu bằng cách sử dụng dbca. Tuy nhiên, tiện ích thấy các tệp nhị phân và cấu trúc thư mục cho cơ sở dữ liệu mà bạn đang tạo để nó nghĩ rằng cơ sở dữ liệu đã tồn tại nhưng chưa được gắn kết. Việc xóa cơ sở dữ liệu và xóa các tệp nhị phân và thư mục cũng như mọi lần dọn dẹp ban đầu khác cần được thực hiện trước, sau đó thử lại.

Các vấn đề liên quan