ORA-01950: não há privilégios no tablespace SYSTEM' Na Criação de Uma IOT no Oracle 12c
Coisa nova pra mim:Bom, não me lembro bem de ter me deparado com essa questão no Oracle em versões anterios, já no 12c, hoje eu tive essa surpresa, veja:
CREATE TABLE TP_COMPRA (
ID_TP_VENDA NUMBER(2) PRIMARY KEY
, DS_TP_VENDA VARCHAR2(30));
table TP_COMPRA criado.
CREATE TABLE TP_COMPRA_IOT (
ID_TP_VENDA NUMBER(2) PRIMARY KEY
, DS_TP_VENDA VARCHAR2(30))
ORGANIZATION INDEX;
Erro a partir da linha : 2 no comando -
CREATE TABLE TP_COMPRA_IOT ( ID_TP_VENDA NUMBER(2) PRIMARY KEY , DS_TP_VENDA VARCHAR2(30)) ORGANIZATION INDEX
Erro na Linha de Comandos : 2 Coluna : 1
Relatório de erros -
Erro de SQL: ORA-01950: não há privilégios no tablespace SYSTEM'
01950. 00000 - "no privileges on tablespace '%s'"
*Cause: User does not have privileges to allocate an extent in the
specified tablespace.
*Action: Grant the user the appropriate system privileges or grant the user
space resource on the tablespace.
Como estava iniciando do zero esse "pluggable database", então, me atentei para a necessidade de adicionar uma tablespace ao mesmo, já que o usuário estava sem a "default tablespace" e portanto, a primeira tabela havia sido criada na tablespace SYSTEM; o interessante é que a segunda tabela o Oracle não me deixou cria-la, e qual a diferença? Ela é do tipo IOT (ou Index Organized Table)... Então, fiz (com uma conta privilegiada):
create tablespace testes;
alter user myuser default tablespace testes;
alter user myuser quota unlimited on testes;
Agora, novamente com a conta myuser:
CREATE TABLE TP_COMPRA_IOT (
ID_TP_VENDA NUMBER(2) PRIMARY KEY
, DS_TP_VENDA VARCHAR2(30))
ORGANIZATION INDEX;
table TP_COMPRA_IOT criado.
Mistérios? Bom, devo ter deixado algum fato anterior passar e minhas andanças no Oracle, mas, a prática é a prática! Espero estar ajudando alguém (como sempre)!