Oracle存儲過程中將表名作為參數,處理方法不同于Oracle帶參數存儲過程的執(zhí)行,從存儲過程的編寫來看,將表名作為參數的存儲過程更為復雜一些。
實例代碼如下:
create procedure proc002(tblName in varchar2) is
tblnm char(50);
strsql char(250);
cursor c_fl is select * from it_fl;
begin
for cv_fl in c_fl loop
begin
tblnm:=tblname;
strsql:='update '||tblnm||' SET FL = '''||cv_fl.FL||''' WHERE OLDFL = '||cv_fl.OLDFL;
dbms_output.put_line(strsql);
execute immediate strsql;
end;
end loop;
commit;
end proc002;
如黑體部分('''為3個單引號),需要用到使用動態(tài)sql,用execute immediate來實現。
x