Oracle存儲過程中將表名作為參數(shù),處理方法不同于Oracle帶參數(shù)存儲過程的執(zhí)行,從存儲過程的編寫來看,將表名作為參數(shù)的存儲過程更為復(fù)雜一些。
實(shí)例代碼如下:
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來實(shí)現(xiàn)。