terça-feira, 6 de novembro de 2012
TABELAS READ ONLY
Olá, hoje vamos falar de uma nova funcionalidade do 11G, colocar uma tabela no modo read only.
A partir do Oracle 11G release 1 o estado de uma tabela pode ser alterado de read write para read only com o comando ALTER TABLE.
Abaixo uma demonstração dessa nova funcionalidade:
SQL> CREATE TABLE TESTE(
2 CODIGO NUMBER);
Tabela criada.
SQL> INSERT INTO TESTE
2 VALUES(1);
1 linha criada.
SQL> SELECT TABLE_NAME,READ_ONLY FROM USER_TABLES WHERE TABLE_NAME = 'TESTE';
TABLE_NAME REA
------------------------------ ---
TESTE NO
SQL> ALTER TABLE TESTE READ ONLY;
Tabela alterada.
SQL> SELECT TABLE_NAME,READ_ONLY FROM USER_TABLES WHERE TABLE_NAME = 'TESTE';
TABLE_NAME REA
------------------------------ ---
TESTE YES
SQL> DELETE TESTE;
DELETE TESTE
*
ERRO na linha 1:
ORA-12081: operação de atualização não permitida na tabela "ISABELE"."TESTE"
SQL> TRUNCATE TABLE TESTE;
TRUNCATE TABLE TESTE
*
ERRO na linha 1:
ORA-12081: operação de atualização não permitida na tabela "ISABELE"."TESTE"
SQL> UPDATE TESTE
2 SET CODIGO = 2;
UPDATE TESTE
*
ERRO na linha 1:
ORA-12081: operação de atualização não permitida na tabela "ISABELE"."TESTE"
SQL> INSERT INTO TESTE
2 VALUES(2);
INSERT INTO TESTE
*
ERRO na linha 1:
ORA-12081: operação de atualização não permitida na tabela "ISABELE"."TESTE"
SQL> ALTER TABLE TESTE READ WRITE;
Tabela alterada.
SQL> INSERT INTO TESTE
2 VALUES(2);
1 linha criada.
SQL> COMMIT;
Commit concluído.
Qualquer comando DML e DDL(Truncate) não irá funcionar enquanto a tabela estiver no modo READ ONLY. Comandos merge e select for update também não serão permitidos.
Uma ótima forma de restringuir o acesso a uma tabela específica.
Um abraço e até o próximo post.
Fonte:http://eduardolegatti.blogspot.com.br/2008/06/read-only-table-abordando-uma-nova.html
Assinar:
Postar comentários (Atom)
Nenhum comentário:
Postar um comentário