oracle - 查找 Oracle 中的列是否具有序列

标签 oracle metadata

我试图弄清楚 Oracle 中的列是否是从序列填充的。我对 Oracle 如何处理排序的印象是序列和列是单独的实体,需要手动插入下一个序列值,例如:

insert into tbl1 values(someseq.nextval, 'test')

或将其放入表触发器中。这意味着判断一列是否是从序列中填充的并非易事。那是对的吗?关于如何确定列是否从序列填充的任何想法?

最佳答案

你是对的;序列与表分离,单个序列可用于填充任何表,某些表中某一列中的值可能大部分来自一个序列(或一组序列),但手动生成的值除外。

换句话说,列和序列之间没有强制连接——因此无法从模式中发现这种关系。

最终,将分析所有在表中插入或更新数据的应用程序的源代码。其他什么都不能保证。如果有一个存储过程是对表进行修改的唯一方法,或者如果有设置值的触发器或其他类似的东西,您可以缩小搜索范围。但一般的解决方案是“分析来源”的“非解决方案”。

关于oracle - 查找 Oracle 中的列是否具有序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1730043/

相关文章:

.net - 在服务实现的合约列表中找不到 IMetaDataExchange

entity-framework - 使用 Entity Framework 的动态数据...使用 [ScaffoldColumn(true)] 通过元数据显示公共(public)属性

android - 问题 78326 : AAPT prints sRGB profile warnings messages

java - 使用 OraclePreparedStatement 通过 Tomcat 8.5.9 从 java 8 写入 oracle 11.2 数据库?

sql - 在 SQL 查询的 WHERE 条件中使用 Oracle SQL 函数的输出

c# - 使用甲骨文数据库。进入以下语句 ."ORA-00936: missing expression",如何解决这个问题?

.net - Oracle.Dataaccess 错误 ORA-06502 : PL/SQL: numeric or value error: character string buffer too small

android - 手动获取 SHOUTcast 元数据

iphone - 使用 SDK 从上传的图像到 Dropbox 的 GET URL 链接

sql - 为什么 IsEqual (=) 运算符比 Oracle 中的 IsNotEqual (<>) 运算符工作得更快?