--try:execute immediate ModuleCalculate using to_char(company),salaryList;
Create Or Replace Procedure pppp(company Varchar2, salaryList Varchar2)As ModuleCalculate Varchar2(1000); Begin ModuleCalculate:='update T_SALARY_SQL set '||replace(ModuleCalculate,'sal','salary')||' where company_id = '||company||' and salary_list_cd ='||salaryList; execute immediate ModuleCalculate;
ORARichard(没钱的日子......) 的方法: --try:execute immediate ModuleCalculate using to_char(company),salaryList;我试了下也不行,报的错和原来一样。
那在liuyi8903的基础上改一下Create Or Replace Procedure pppp(company Varchar2, salaryList Varchar2)As ModuleCalculate Varchar2(1000); Begin ModuleCalculate:='update T_SALARY_SQL set '||replace(ModuleCalculate,'sal','salary')||' where company_id = '''||company||''' and salary_list_cd ='''||salaryList||'''; execute immediate ModuleCalculate;
End pppp;
前面可能有错,没测试 --tryCreate Or Replace Procedure pppp(company Varchar2, salaryList Varchar2)As ModuleCalculate Varchar2(1000); Begin ModuleCalculate:='update T_SALARY_SQL set '||replace(ModuleCalculate,'sal','salary')||' where company_id = '''||company||''' and salary_list_cd ='''||salaryList||''''; execute immediate ModuleCalculate;
End pppp;
问题解决了,但不知道是为什么,我这么改一下就OK了: execute immediate 'update T_SALARY_SQL set '||replace(ModuleCalculate,'sal','salary')|| ' where company_id = :1 and salary_list_cd = :2' using company,salaryList;
ModuleCalculate Varchar2(1000);
Begin
ModuleCalculate:='update T_SALARY_SQL set '||replace(ModuleCalculate,'sal','salary')||' where company_id = '||company||' and salary_list_cd ='||salaryList;
execute immediate ModuleCalculate;
End pppp;
但还是非常感谢liuyi8903(甜脆夹心) 。请大家帮忙多想想办法!
--try:execute immediate ModuleCalculate using to_char(company),salaryList;我试了下也不行,报的错和原来一样。
ModuleCalculate Varchar2(1000);
Begin
ModuleCalculate:='update T_SALARY_SQL set '||replace(ModuleCalculate,'sal','salary')||' where company_id = '''||company||''' and salary_list_cd ='''||salaryList||''';
execute immediate ModuleCalculate;
End pppp;
--tryCreate Or Replace Procedure pppp(company Varchar2, salaryList Varchar2)As
ModuleCalculate Varchar2(1000);
Begin
ModuleCalculate:='update T_SALARY_SQL set '||replace(ModuleCalculate,'sal','salary')||' where company_id = '''||company||''' and salary_list_cd ='''||salaryList||'''';
execute immediate ModuleCalculate;
End pppp;
execute immediate
'update T_SALARY_SQL set '||replace(ModuleCalculate,'sal','salary')||
' where company_id = :1 and salary_list_cd = :2'
using company,salaryList;