Come viene determinato il tablespace predefinito durante la creazione di una tabella?


27

Il Tablespaceparametro è facoltativo durante la creazione di tabelle.

All'esecuzione di CREATE TABLEun'istruzione, Oracle assegna quella predefinita se non è stata definita.

Nel database predefinito è presente un tablespace "USERS". Se fossero stati definiti più tablespace, quale sarebbe assegnato?

Risposte:


41

Quando si crea un nuovo utente, è possibile specificare facoltativamente il tablespace predefinito e il tablespace temporaneo predefinito per tutti gli oggetti creati da tale utente. Per esempio:

CREATE USER phil IDENTIFIED BY l33t
       DEFAULT TABLESPACE philtablespace
       TEMPORARY TABLESPACE philtemp;

Se si omettono le clausole durante la creazione dell'utente, l'utente erediterà i valori predefiniti del database. Questi possono essere interrogati come segue:

SQL> select *
  2  from database_properties
  3  where property_name like 'DEFAULT%TABLESPACE';

PROPERTY_NAME                  PROPERTY_VALUE       DESCRIPTION
------------------------------ -------------------- ----------------------------------------
DEFAULT_TEMP_TABLESPACE        TEMP                 Name of default temporary tablespace
DEFAULT_PERMANENT_TABLESPACE   USERS                Name of default permanent tablespace

SQL>

... e modificato in questo modo:

alter database default tablespace PHILTS; 

alter database default temporary tablespace PHILTEMP;

Per eseguire una query sui valori predefiniti per un determinato utente, utilizzare la seguente query:

SQL> select USERNAME, DEFAULT_TABLESPACE, TEMPORARY_TABLESPACE
  2  from DBA_USERS
  3  where USERNAME='PHIL';

USERNAME                       DEFAULT_TABLESPACE             TEMPORARY_TABLESPACE
------------------------------ ------------------------------ ------------------------------
PHIL                           USERS                          TEMP

SQL>

5

SELECT DEFAULT_TABLESPACE FROM DBA_USERSper conoscere il tablespace predefinito per ciascun utente. ALTER DATABASE DEFAULT TABLESPACE othertablespace;per modificare il tablespace predefinito. Solitamente se ci sono alcuni tablespace, l'amministratore dovrebbe impostare il tablespace predefinito durante la creazione di un nuovo utente comeCREATE USER myuser IDENTIFIED BY mypass DEFAULT TABLESPACE onetablespace

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.