create or replace function f_name(strSql in varchar2) return number isv_sqlstr Varchar2(2000);
Result Number(10,5);
price_sum Number(10,5);Beginv_sqlstr:='Select Sum(item.bid_price_stand) bid_price_stand From Zb_Bid_Item Item, Inf_Product p, Inf_Drug d ';
v_sqlstr:=v_sqlstr||' Where item.Product_Id = p.Product_Id And item.Factory_Id = p.Factory_Id And p.Drug_Id = d.Drug_Id ';
v_sqlstr:=v_sqlstr||strSql;
Execute Immediate v_sqlstr Into price_sum;
If price_sum=0 Then
price_sum:= bid_price_stand;
End If;Result:=price_sum;
return(Result);
end f_name;以上编译及测试在pl/sql都可以通过。但在页面执行时也不行。
页面执行的SQL:
Update Zb_Bid_Item
Set Bid_Price = 10,Re = Jz_Limit_Get_Price_Mark(10,'And item.Invite_Id=24 And Drug_Name=''注射用头孢曲松钠'' And Drug_Spec = ''1.0g'' And Mode_Name = ''粉针剂'' And Baddish_No = 2')
where id=3 报错现象:
表 xxx 发生了变化,触发器/函数不能读
Result Number(10,5);
price_sum Number(10,5);Beginv_sqlstr:='Select Sum(item.bid_price_stand) bid_price_stand From Zb_Bid_Item Item, Inf_Product p, Inf_Drug d ';
v_sqlstr:=v_sqlstr||' Where item.Product_Id = p.Product_Id And item.Factory_Id = p.Factory_Id And p.Drug_Id = d.Drug_Id ';
v_sqlstr:=v_sqlstr||strSql;
Execute Immediate v_sqlstr Into price_sum;
If price_sum=0 Then
price_sum:= bid_price_stand;
End If;Result:=price_sum;
return(Result);
end f_name;以上编译及测试在pl/sql都可以通过。但在页面执行时也不行。
页面执行的SQL:
Update Zb_Bid_Item
Set Bid_Price = 10,Re = Jz_Limit_Get_Price_Mark(10,'And item.Invite_Id=24 And Drug_Name=''注射用头孢曲松钠'' And Drug_Spec = ''1.0g'' And Mode_Name = ''粉针剂'' And Baddish_No = 2')
where id=3 报错现象:
表 xxx 发生了变化,触发器/函数不能读
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货