请问以下SQL在方法内如何执行。谢谢
create or replace function f_name(strSql in varchar2) return number is
v_sqlstr Varchar2(2000);
Result Number(10,5);
price_sum Number(10,5);
Begin
v_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,Remark = 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 发生了变化,触发器/函数不能读
------解决方案--------------------表Zb_Bid_Item上存在update触发器?你执行的update并没有直接使用那个函数。
------解决方案--------------------肯定有哪个触发器关联到了