一个比较畸歪的PL/SQL问题
各位大虾,小弟有问题请教:
某个表的字段,会有很多个,如:
INT_COL1
INT_COL2
INT_COL3
.
.
.INT_COL100
在触发器中 有没有方法可以动态比较下面(伪代码)语句
condition:
':new.INT_COL'||i|| '<> : old.INT_COL' ||i
其中index是变量,从1,2……100
即是类似用循环实现下面的效果:
: new.INT_COL1<> : old.INT_COL1
: new.INT_COL2<> : old.INT_COL2
.
.
.
: new.INT_COL100<> : old.INT_COL100
-----------------------------------------------------------
另外我的思路是:
execute immediate 'select t.dummy from dual where :new.INT_COL'||i||'<>:old.INT_COL'||i
into compare_result;
if compare_result = 'Y' then
……
或者
execute immediate 'select t.dummy from dual t where \:new.INT_COL1 <> \:old.INT_COL1 escape :esc_name '
into compare_result
using '\';
if compare_result = 'Y' then
……
但是非常遗憾的是,执行起来都是错误,我精疲力竭了,望各位大虾救救我,谢谢了:)