Oracle 10:INSERT进入视图时难以理解的行为?
发布时间:2021-03-06 13:21:57 所属栏目:站长百科 来源:网络整理
导读:副标题#e# 我们这里有一个奇怪的问题,我们无法向自己解释. 我们在Oracle DB Version 10.2.0.5.8中有一个视图.该视图使用INSTEAD OF触发器. 这是触发器的代码: CREATE OR REPLACE TRIGGER V1_T1_BIUD INSTEAD OF INSERT OR UPDATE OR DELETE ON V1_T1 FOR E
在@ Annjawn的注释之后,将插入从V1_T1更改为T1中的直接插入工作正常(即插入了正确的值),并且奇怪地具有相同的计划哈希,即使它显示表名而不是名称列中的视图.同时使用UNION或UNION ALL,以及10gR2和11gR2.我猜,这似乎是工会混淆的触发器. 进一步到数据类型点…视图必须有char列,表不一定,这不是一个惊喜,因为视图上的触发器似乎是问题.如果我使用char列设置表但在视图中将它们转换为varchar2,那么我没有看到问题: create table t1 (f1 varchar2(2),f5 char(2)); create view v1_t1 as select f1,f2,f3,cast(f4 as varchar(2)) f4,cast(f5 as varchar(2)) f5 from t1; 但如果我这样做,反过来确实表现出问题: create table t1 (f1 varchar2(2),f4 varchar(2),f5 varchar(2)); create view v1_t1 as select f1,cast(f4 as char(2)) f4,cast(f5 as char(2)) f5 from t1; (编辑:徐州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |