swe*_*ams 14 oracle11g oracle-sqldeveloper
如何使用Oracle 11g和SQL Developer创建一个小而简单的数据库?我看到太多错误,我找不到任何方法来创建一个简单的数据库.例如
create database company;
Run Code Online (Sandbox Code Playgroud)
导致以下错误:
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.
Run Code Online (Sandbox Code Playgroud)
编辑 - 这与我熟悉的MySQL和MS-SQL完全不同.不像我期望的那样直观.
Jus*_*ave 30
首先,Oracle称之为"数据库"的东西通常与大多数其他数据库产品称为"数据库"的东西不同.MySQL或SQL Server中的"数据库"更接近Oracle所谓的"模式",即"特定用户拥有的对象集".在Oracle中,通常每个服务器只有一个数据库(大型服务器上可能有少量数据库),其中每个数据库都有许多不同的模式.如果您使用的是Oracle的快速版,则每台服务器只允许使用1个数据库.如果您通过SQL Developer连接到Oracle,则表明您已经创建了Oracle数据库.
假设您确实要创建模式而不是数据库(使用Oracle术语),则可以创建用户
CREATE USER company
IDENTIFIED BY <<password>>
DEFAULT TABLESPACE <<tablespace to use for objects by default>>
TEMPORARY TABLESPACE <<temporary tablespace to use>>
Run Code Online (Sandbox Code Playgroud)
然后,您将为用户分配您想要的任何权限
GRANT CREATE SESSION TO company;
GRANT CREATE TABLE TO company;
GRANT CREATE VIEW TO company;
...
Run Code Online (Sandbox Code Playgroud)
完成后,您可以连接到(现有)数据库,COMPANY并在COMPANY架构中创建对象.