如何使用Oracle 11 g和SQL Developer创建一个小而简单的数据库? 我看到太多错误,我找不到任何方法来创建一个简单的数据库。 例如
create database company;
导致以下错误:
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.
编辑 - 这与我熟悉的MySQL和MS-SQL完全不同。 不像我期望的那样直观。
答案 0 :(得分: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>>
然后,您可以为用户分配您想要的任何权限
GRANT CREATE SESSION TO company;
GRANT CREATE TABLE TO company;
GRANT CREATE VIEW TO company;
...
完成后,您可以COMPANY
连接到(现有)数据库,并在COMPANY
架构中创建对象。
答案 1 :(得分:1)
从您的问题描述中,我认为您要创建数据库模式,而不是数据库实例。在Oracle术语中,数据库实例是文件系统中的一组文件。它更像是MySQL中的数据文件。而MySQL中的数据库有点等同于Oracle的模式。
在Oracle中创建架构:https://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_6014.htm
在Oracle中创建数据库实例(我个人更喜欢CDBA): https://docs.oracle.com/cd/E11882_01/server.112/e25494/create.htm#ADMIN11068
请注意,Oracle Express版本不支持同时安装多个数据库实例。
答案 2 :(得分:0)
实际上,贾斯汀的答案不可能更加错误。 SQL Server和MySQL适用于小型数据库。 Oracle适用于大型企业数据库,因此它的结构不同。如果服务器足够强大以处理负载,则在服务器上拥有多个Oracle数据库是很常见的。如果您收到上面发布的错误,那么您显然正在尝试创建一个新的Oracle数据库,如果您这样做,那么您可能已经了解了Oracle数据库的结构。可能的情况是您尝试使用dbca创建数据库,它最初失败,但二进制文件已创建。然后,您调整了初始参数并重新尝试使用dbca创建数据库。但是,该实用程序会查看您正在创建的数据库的二进制文件和文件夹结构,因此它认为数据库已存在但未装入。应首先删除数据库并删除二进制文件和文件夹以及初始尝试的任何其他清理,然后再试一次。