Oracle 表->;通过虚拟列的函数依赖关系不在所有_依赖关系中?
我有以下物品:Oracle 表->;通过虚拟列的函数依赖关系不在所有_依赖关系中?,oracle,dependencies,data-dictionary,Oracle,Dependencies,Data Dictionary,我有以下物品: CREATE FUNCTION CONSTFUNC RETURN INT DETERMINISTIC AS BEGIN RETURN 1; END; CREATE TABLE "FUNCTABLE" ( "ID" NUMBER(*,0) NOT NULL, "VIRT" NUMBER GENERATED ALWAYS AS ("CONSTFUNC"()) NULL ); 但是,functable=>constfunc依赖项并没有列在所有依赖项或用户依赖项中。字典中有任
CREATE FUNCTION CONSTFUNC RETURN INT
DETERMINISTIC
AS
BEGIN
RETURN 1;
END;
CREATE TABLE "FUNCTABLE" (
"ID" NUMBER(*,0) NOT NULL,
"VIRT" NUMBER GENERATED ALWAYS AS ("CONSTFUNC"()) NULL
);
但是,functable=>constfunc依赖项并没有列在所有依赖项或用户依赖项中。字典中有任何地方可以访问此依赖项信息吗?用于生成虚拟列的表达式列在[DBA | ALL | USER]_选项卡| COLUMNS视图的DATA _DEFAULT列中 我刚刚在11G(11.1)中创建了您的函数和表,可以确认您的发现。我在Oracle文档中也找不到任何东西 如果您删除该函数,表状态将保持为“有效”,但当您从表中选择时,将得到ORA-00904:“CHAMP”。“CONSTFUNC”:无效标识符。这表明Oracle本身并没有意识到这种依赖性
在asktom.oracle.com上问这个问题可能是值得的,因为Tom Kyte可以访问更多信息-如果需要,他甚至可能会提出一个错误。但我想要的是表达式的实际依赖信息,而不是表达式文本。我不想自己解析文本和查找对象标识符!我不知道为什么我会因此得到负面评价。这可能不是你想要的答案,但它是对你问题的正确回答。看起来甲骨文还没有完全开发出这个新功能。我有一个想法,也许一个表不能是一个引用对象类型,但我有一些数据库,其中表的列定义为类型,这些列确实正确地显示了依赖关系