2012-08-07 7 views
10

Come creare un database piccolo e semplice utilizzando Oracle 11 ge SQL Developer? Vedo troppi errori e non riesco a trovare alcun modo per creare un semplice database. Per esempioCome creare un database piccolo e semplice utilizzando Oracle 11 ge SQL Developer?

create database company; 

ha causato l'errore seguente:

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- Questo è completamente diverso da MySQL e MS-SQL che mi è familiare. Non così intuitivo come mi aspettavo.

+2

La creazione di un DB in MySQL e MS-SQL sembra molto più semplice rispetto a Oracle. Oracle è davvero così difficile? –

risposta

20

Prima di tutto, ciò che Oracle chiama un "database" è generalmente diverso da quello che la maggior parte degli altri prodotti di database chiamano un "database". Un "database" in MySQL o SQL Server è molto più vicino a quello che Oracle chiama uno "schema" che è l'insieme di oggetti posseduti da un particolare utente. In Oracle, in genere si dispone di un solo database per server (un server di grandi dimensioni potrebbe disporre di una manciata di database su di esso) in cui ogni database ha molti schemi diversi. Se si utilizza l'edizione rapida di Oracle, è consentito disporre di un solo database per server. Se si è connessi a Oracle tramite SQL Developer, ciò indica che si è già creato il database Oracle.

Supponendo che si vuole veramente creare uno schema, non un database (utilizzando Oracle terminologia), è necessario creare l'utente

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

Si potrebbe quindi assegnare l'utente qualunque privilegi si voleva

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

Una volta terminato, è possibile connettersi al database (esistente) come COMPANY e creare oggetti nello schema COMPANY.

+0

Sono totalmente perso. Vedo una connessione. Quando lo espongo, vedo Tabelle, Visualizzazioni, , altri utenti. Quindi, come faccio a creare un "database" di Dipendenti (non un'azienda per ora) con tabelle emp Id, nome, età? –

+0

@sweetdreams - Non si crea un "database" (utilizzando la terminologia Oracle). Si crea uno schema. Per creare lo schema, si crea l'utente che deterrà gli oggetti nello schema. Quindi si creano tabelle, viste, ecc. Che fanno parte dello schema. Vuoi semplicemente creare una tabella 'Employee' con colonne' emp_id', 'name' e' age'? –

+1

Se non esiste il concetto di "database", allora perché i documenti Oracle DB hanno un'istruzione di database di creazione? Parliamo in MySQL per ora - questo è quello che voglio fare - creare Database chiamato Company. Crea una tabella di dipendenti al suo interno. Il dipendente ha le colonne id, nome, età, ecc. Puoi tradurre questo in Oracle SQL? –

1

Dalla descrizione della domanda, penso che dovresti creare uno schema di database, non un'istanza di database. Nella terminologia Oracle, un'istanza di database è un insieme di file nel file system. È più simile ai file di dati in MySQL. Mentre il database in MySQL è in qualche modo equivalente allo schema di Oracle.

per creare uno schema in Oracle: https://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_6014.htm

Per creare un'istanza del database di Oracle (io personalmente preferisco CDBA): https://docs.oracle.com/cd/E11882_01/server.112/e25494/create.htm#ADMIN11068

Avviso edizione di Oracle Express non supporta il montaggio esempio più di un database in una volta.

0

In realtà la risposta di Justin sopra non potrebbe essere più errata. SQL Server e MySQL sono per database di dimensioni ridotte. Oracle è per i grandi database aziendali, quindi la differenza nella sua struttura. Ed è comune avere più di un database Oracle su un server a condizione che il server sia abbastanza robusto per gestire il carico. Se hai ricevuto l'errore pubblicato sopra, ovviamente stai cercando di creare un nuovo database Oracle e, se lo stai facendo, probabilmente già comprendi la struttura di un database Oracle. Lo scenario probabile è che tu abbia tentato di creare un database usando dbca, inizialmente non è riuscito, ma i binari sono stati creati. Quindi hai regolato i parametri iniziali e hai tentato nuovamente di creare il database usando dbca. Tuttavia, l'utilità vede i binari e la struttura delle cartelle per il database che si sta creando in modo che pensi che il database esista già ma non sia montato. Per prima cosa è necessario eliminare il database e rimuovere i binari e le cartelle e qualsiasi altra pulizia del tentativo iniziale, quindi riprovare.