Descobrindo a tabela pelo rowid do Oracle
Sem comentários · Posted by Petter Rafael in Oracle
Algumas vezes encontramos rotinas de validação e/ou transferência de dados que utilizam o rowid (Oracle) como chave única para encontrar e atualizar os dados e para dar manutenção podemos ter a necessidade de saber de qual tabela saiu aquele rowid.
Podemos então executar a consulta abaixo para retornar o nome da tabela para o rowid informado:
DECLARE w_rowid ROWID:= 'AAAWHmAAfAAAD7qAAA'; w_nome varchar2(100); BEGIN SELECT DBA_OBJECTS.OBJECT_NAME INTO w_nome FROM SYS.DBA_OBJECTS WHERE DBA_OBJECTS.OBJECT_ID = DBMS_ROWID.ROWID_OBJECT (w_rowid); print('Tabela: '||w_nome); END; |
Devemos notar dois detalhes:
- O rowid é único somente por cluster, ou seja, caso o seu ambiente seja “clusterizado” você poderá encontrar o mesmo rowid em diversos clusters, porém mesmo assim irá reduzir o número de tabelas para procurar o rowid;
- O usuário precisa ter privilégio de SYSDBA do Oracle para executar a consulta.
Leia mais:
Sem comentários
Deixe uma resposta
<< Android 5
