Como o espaço de tabela padrão é determinado ao criar uma tabela?

27

O Tablespaceparâmetro é opcional ao criar tabelas.

Após a execução de uma CREATE TABLEinstrução, o Oracle atribui a padrão se não foi definida.

No banco de dados padrão, há um espaço de tabela "USUÁRIOS". Se houvesse vários espaços de tabela definidos, qual deles seria atribuído?

Centurião
fonte

Respostas:

41

Ao criar um novo usuário, é possível especificar opcionalmente o espaço de tabela padrão e o espaço de tabela temporário padrão para quaisquer objetos criados por esse usuário. Por exemplo:

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

Se você omitir as cláusulas ao criar o usuário, ele herdará os valores padrão do banco de dados. Eles podem ser consultados da seguinte maneira:

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 modificado da seguinte forma:

alter database default tablespace PHILTS; 

alter database default temporary tablespace PHILTEMP;

Para consultar os valores padrão para um determinado usuário, use a seguinte consulta:

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

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

SQL>
Philᵀᴹ
fonte
5

SELECT DEFAULT_TABLESPACE FROM DBA_USERSpara conhecer o espaço de tabela padrão para cada usuário. ALTER DATABASE DEFAULT TABLESPACE othertablespace;para alterar o espaço de tabela padrão. Geralmente, se houver alguns espaços de tabela, o administrador deve definir o espaço de tabela padrão ao criar um novo usuário, comoCREATE USER myuser IDENTIFIED BY mypass DEFAULT TABLESPACE onetablespace

Hola Soy Edu Feliz Navidad
fonte