Le paramètre Tablespace
est facultatif lors de la création de tables.
Lors de l'exécution d'un CREATE TABLE
, Oracle attribue celle par défaut si elle n'a pas été définie.
Dans la base de données par défaut, il y a un espace de table "USERS". Si plusieurs tablespaces étaient définis, lequel serait attribué?
Lorsque vous créez un nouvel utilisateur, vous pouvez éventuellement spécifier l'espace disque logique par défaut et l'espace disque logique temporaire par défaut pour tous les objets créés par cet utilisateur. Par exemple:
CREATE USER phil IDENTIFIED BY l33t
DEFAULT TABLESPACE philtablespace
TEMPORARY TABLESPACE philtemp;
Si vous omettez les clauses lors de la création de l'utilisateur, l'utilisateur héritera des valeurs par défaut de la base de données. Ceux-ci peuvent être interrogés comme suit:
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>
... et modifié comme suit:
alter database default tablespace PHILTS;
alter database default temporary tablespace PHILTEMP;
Pour interroger les valeurs par défaut pour un utilisateur donné, utilisez la requête suivante:
SQL> select USERNAME, DEFAULT_TABLESPACE, TEMPORARY_TABLESPACE
2 from DBA_USERS
3 where USERNAME='PHIL';
USERNAME DEFAULT_TABLESPACE TEMPORARY_TABLESPACE
------------------------------ ------------------------------ ------------------------------
PHIL USERS TEMP
SQL>
SELECT DEFAULT_TABLESPACE FROM DBA_USERS
pour connaître l'espace disque logique par défaut de chaque utilisateur. ALTER DATABASE DEFAULT TABLESPACE othertablespace;
pour modifier l'espace disque logique par défaut. Habituellement, s'il existe certains espaces de table, l'administrateur doit définir l'espace de table par défaut lors de la création d'un nouvel utilisateur comme CREATE USER myuser IDENTIFIED BY mypass DEFAULT TABLESPACE onetablespace