it-swarm.com.de

Wie wird der Standardtabellenbereich beim Erstellen einer Tabelle bestimmt?

Der Parameter Tablespace ist beim Erstellen von Tabellen optional.

Bei Ausführung eines CREATE TABLE Anweisung weist Oracle die Standardanweisung zu, wenn sie nicht definiert wurde.

In der Standarddatenbank gibt es einen Tabellenbereich "USERS". Wenn mehrere Tablespaces definiert wären, welcher würde zugewiesen werden?

27
Centurion

Wenn Sie einen neuen Benutzer erstellen, können Sie optional den Standardtabellenbereich und den temporären Standardtabellenbereich für alle von diesem Benutzer erstellten Objekte angeben. Zum Beispiel:

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

Wenn Sie die Klauseln beim Erstellen des Benutzers weglassen, erbt der Benutzer die Standardwerte der Datenbank. Diese können wie folgt abgefragt werden:

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>

... und so modifiziert:

alter database default tablespace PHILTS; 

alter database default temporary tablespace PHILTEMP;

Verwenden Sie die folgende Abfrage, um die Standardwerte für einen bestimmten Benutzer abzufragen:

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

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

SQL>
41
Philᵀᴹ

SELECT DEFAULT_TABLESPACE FROM DBA_USERS, Um den Standardtabellenbereich für jeden Benutzer zu kennen. ALTER DATABASE DEFAULT TABLESPACE othertablespace;, Um den Standardtabellenbereich zu ändern. Wenn einige Tabellenbereiche vorhanden sind, sollte der Administrator normalerweise den Standardtabellenbereich festlegen, wenn ein neuer Benutzer wie CREATE USER myuser IDENTIFIED BY mypass DEFAULT TABLESPACE onetablespace Erstellt wird.