2012-08-07 74 views
10

¿Cómo crear una base de datos pequeña y simple usando Oracle 11g y SQL Developer? Estoy viendo demasiados errores y no puedo encontrar ninguna forma de hacer una base de datos simple. Por ejemplo ¿Cómo crear una base de datos pequeña y simple usando Oracle 11g y SQL Developer?

create database company; 

causó el siguiente error:

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- Esto es completamente diferente de MySQL y MS-SQL que estoy familiarizado. No tan intuitivo como esperaba.

+2

Crear una base de datos en MySQL y MS-SQL parece mucho más fácil que en Oracle. ¿Es Oracle realmente tan difícil? –

Respuesta

20

En primer lugar, lo que Oracle llama una "base de datos" es generalmente diferente de lo que la mayoría de los demás productos de bases de datos llaman una "base de datos". Una "base de datos" en MySQL o SQL Server está mucho más cerca de lo que Oracle llama un "esquema", que es el conjunto de objetos que posee un usuario en particular. En Oracle, generalmente solo tendrías una base de datos por servidor (un servidor grande podría tener un puñado de bases de datos) donde cada base de datos tiene muchos esquemas diferentes. Si está utilizando la edición express de Oracle, solo puede tener 1 base de datos por servidor. Si está conectado a Oracle a través de SQL Developer, eso indica que ya tiene la base de datos Oracle creada.

Asumiendo que usted realmente desea crear un esquema, no es una base de datos (usando la terminología de Oracle), debe crear el usuario

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

A continuación, asignar el usuario sea cual sea privilegios que quería

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

Una vez hecho esto, puede conectarse a la base de datos (existente) como COMPANY y crear objetos en el esquema COMPANY.

+0

Estoy totalmente perdido. Veo una conexión. Cuando lo amplío, veo Tablas, Vistas, , otros usuarios. Entonces, ¿cómo creo una "base de datos" de Empleados (no de la empresa por ahora) con tablas de identificación, nombre, edad? –

+0

@sweetdreams: no crea una "base de datos" (utilizando la terminología de Oracle). Usted crea un esquema. Para crear el esquema, crea el usuario que será el propietario de los objetos en el esquema. Luego, crea las tablas, vistas, etc. que forman parte del esquema. ¿Desea crear una tabla 'Empleado' con columnas' emp_id', 'name' y' age'? –

+1

Si no hay un concepto de "base de datos", ¿por qué los documentos de Oracle DB tienen una declaración de base de datos de creación? Hablemos en MySQL por ahora, esto es lo que quiero hacer, crear Base de datos llamada Compañía. Haga una tabla de empleados dentro de ella. El empleado tiene columnas id, nombre, edad, etc. ¿Puede traducir esto a Oracle SQL? –

1

Según la descripción de su pregunta, creo que debe crear un esquema de base de datos, no una instancia de base de datos. En la terminología de Oracle, una instancia de base de datos es un conjunto de archivos en el sistema de archivos. Es más como archivos de datos en MySQL. Mientras que la base de datos en MySQL es algo equivalente al esquema de Oracle.

Para crear un esquema en Oracle: https://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_6014.htm

Para crear una instancia de base de datos en Oracle (yo personalmente prefiero CDBA): https://docs.oracle.com/cd/E11882_01/server.112/e25494/create.htm#ADMIN11068

Aviso de la edición de Oracle Express no admite el montaje más de una instancia de base de datos de una sola vez.

0

En realidad, la respuesta de Justin anterior no podría ser más incorrecta. SQL Server y MySQL son para bases de datos pequeñas. Oracle es para grandes bases de datos empresariales, por lo tanto, la diferencia en su estructura. Y es común tener más de una base de datos Oracle en un servidor siempre que el servidor sea lo suficientemente robusto como para manejar la carga. Si recibió el error publicado anteriormente, obviamente está tratando de crear una nueva base de datos Oracle y, si lo hace, probablemente ya comprenda la estructura de una base de datos Oracle. El escenario probable es que haya intentado crear una base de datos usando dbca, inicialmente falló, pero se crearon los binarios. A continuación, ajustó sus parámetros iniciales y volvió a intentar crear la base de datos utilizando dbca. Sin embargo, la utilidad ve los binarios y la estructura de carpetas de la base de datos que está creando, por lo que cree que la base de datos ya existe pero no está montada. Se debe eliminar la base de datos, eliminar los binarios y las carpetas, así como cualquier otra limpieza del intento inicial, y luego volver a intentarlo.

Cuestiones relacionadas