Oracle存储过程中将表名作为参数,处理方法不同于Oracle带参数存储过程的执行,从存储过程的编写来看,将表名作为参数的存储过程更为复杂一些。
实例代码如下:
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个单引号),需要用到使用动态sql,用execute immediate来实现。
☉简单实例:Oracle带参数存储过程的执行 (2009-11-17 18:36:57)
☉ORACLE使用关键字字段在查询时输出双引号的写法 (2009-11-12 13:2:31)
☉ORACLE 中更改用户密码的方法 (2009-7-10 17:17:55)
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。