Boa tarde,
Estou desenvolvendo uma procedure para executar o truncate de várias tabelas só que é necessário saber em quais constraints as tabelas são mencionadas.
Sendo assim, criei cursores para utilizar o processo pesquisando dados na dba_constraints e all_constraints. O problema é que o cursor que utiliza a all_constraints não retorna informações quando é colocada a claúsula WHERE, sem esta claúsula funciona corretamente.
Alguém sabe se há algum problema em utilizar a “all_constraint” em procedure com cursor? Banco 9i.
Cursor Lista_Constraints_Primaria (p_OwnerTabela in varchar2, p_Tabela in varchar2) is
select owner, constraint_name, table_name
from all_constraints
where r_constraint_name = (select constraint_name
from all_constraints
where table_name = p_Tabela
and constraint_type = ‘P’)
and owner = p_OwnerTabela;
.
.
.
open Lista_Constraints_Primaria(x.owner, x.table_name);
loop
fetch Lista_Constraints_Primaria into v_owner_p, v_nome_tabela_p, v_nome_constraint_p;
exit when Lista_Constraints_Primaria%NOTFOUND;
.
.
.
Obrigado.
Airton