create or replace trigger oaSyncHr_trigger
after
update of FLOW_FLAG on workflow_file
for each row declare
v_fieldNum varchar2(100);
v_fieldNumValue varchar2(100);
v_fieldNum_sql varchar2(2000);
begin
if (:new.FLOW_FLAG = 2)
then
if(:new.FLOW_ID = 40002022)
then
select flowfield.fieldserial into v_fieldNum from workflow_flowfield flowfield where flowfield.flowtype_id = 40000442 and flowfield.name = N'得分合计';
v_fieldNum_sql := 'update gztygtx set gzbxpgdf=(select w.fieldNum'|| v_fieldNum ||' from workflow_file w where w.id = 187004627 ) where nm=1';
execute immediate v_fieldNum_sql;
end if;
end if;
end;运行时一直提示 execute immediate v_fieldNum_sql;这里错误,
把 v_fieldNum_sql的值直接拿出来运行又是成功的;
这是什么问题
after
update of FLOW_FLAG on workflow_file
for each row declare
v_fieldNum varchar2(100);
v_fieldNumValue varchar2(100);
v_fieldNum_sql varchar2(2000);
begin
if (:new.FLOW_FLAG = 2)
then
if(:new.FLOW_ID = 40002022)
then
select flowfield.fieldserial into v_fieldNum from workflow_flowfield flowfield where flowfield.flowtype_id = 40000442 and flowfield.name = N'得分合计';
v_fieldNum_sql := 'update gztygtx set gzbxpgdf=(select w.fieldNum'|| v_fieldNum ||' from workflow_file w where w.id = 187004627 ) where nm=1';
execute immediate v_fieldNum_sql;
end if;
end if;
end;运行时一直提示 execute immediate v_fieldNum_sql;这里错误,
把 v_fieldNum_sql的值直接拿出来运行又是成功的;
这是什么问题
A表中的字段有fieldNum1到fieldNum30 现在在B表查到一个数字28,怎么去A表查fieldNum28的值如果有其他解决的方法也可以
然后用字符串拼接
再execute immediate v_fieldNum_sql := 'update gztygtx set gzbxpgdf=' ;
select w.fieldNum'|| v_fieldNum ||' INTO v_fieldNum_sql1 from workflow_file w where w.id = 187004627 ;
v_fieldNum_sql :=v_fieldNum_sql ||v_fieldNum_sql1 ||'where nm=1';
execute immediate v_fieldNum_sql ;