如何在PL / SQL中使用序列查找父表?

时间:2014-10-16 19:20:17

标签: sql oracle plsql

select SEQUENCE_OWNER, SEQUENCE_NAME from ALL_SEQUENCES 

我们假设上面的代码会给我以下结果。

<Table Name: ALL_SEQUENCES> 
SEQUENCE_OWNER      SEQUENCE_NAME 
schema1             table1_name_seq       
schema1             table2_name_seq       
schema2             table1_name_seq   

我很确定每个序列都有一个对应的父表,序列用于该表。所以,我想使用 sequence_name 找到父表。例如,如果我知道序列名 table1_name_seq 且序列所有者 schema1 ,我应该找到表名 schema1.table1

建议不要使用

SUBSTRING或REPLACE函数来重新格式化字符串,因为 sequence_name 不遵循“良好的一致命名标准”,我无权更改它。

我找不到有关此事的任何信息。非常感谢您的帮助!

2 个答案:

答案 0 :(得分:6)

简答:序列和表格之间不是一对一的关系。

长(呃)答案:

您可以对多个表使用单个序列(例如,使用多个触发器)。

您必须在数据库对象代码中搜索序列名称,以查看可以使用它的所有位置。

即便如此,你也可能会错过,因为你可以使用PLSQL代码从任何应用程序中的序列中获得下一个值。

答案 1 :(得分:0)

序列和存储在数据库sys表中的表之间没有关系。您可以创建一个