sql >> Base de Datos >  >> RDS >> Oracle

¿Qué tabla de Oracle usa una secuencia?

El problema es que Oracle nos permite usar una secuencia para llenar columnas en varias tablas. Los escenarios en los que esto podría ser deseable incluyen implementaciones de supertipo/subtipo.

Puede usar las dependencias en el diccionario de datos para identificar las relaciones. Por ejemplo, si usa disparadores para asignar los valores, esta consulta lo ayudará:

select ut.table_name
       , ud.referenced_name as sequence_name
from   user_dependencies ud
       join user_triggers ut on (ut.trigger_name = ud.name)
where ud.type='TRIGGER' 
and ud.referenced_type='SEQUENCE'
/

Si usa PL/SQL, puede escribir algo similar para TYPE in ('PACKAGE BODY', 'PROCEDURE', 'FUNCTION') , aunque seguirá siendo necesario rastrear el código fuente para asignar tablas y secuencias cuando tenga varias coincidencias.