问题描述
- 存储过程问题,想创建表,但是表名问题影响到出错。
-
create or replace procedure PRC_GZF_BZ_YWSLID(ywslid in verchar2) as L_YWSLID verchar2(30); tpg_gzfspbnum verchar2(30);begin L_YWSLID:=ywslid; tpg_gzfspbnum:='tpg_gzfspb'||L_SLIDID;execute immediate' create table tpg_gzfspbnum as select * fromGZF_ZFBZ.tpg_gzfspb@gzf_zfbz where ywslid = L_YWSLID;'end PRC_GZF_BZ_YWSLID;
上面的SQL,如果创建表名的时候不用execute immediate' ‘又报错,提示说begin和end之间必须要有东西。。。而且这样会读取不到上面的赋值.
求解怎么解决赋值表名
解决方案
execute immediate' create table '||tpg_gzfspbnum||' as select * from GZF_ZFBZ.tpg_gzfspb@gzf_zfbz where ywslid = '''||L_YWSLID||''';'
时间: 2024-12-11 15:15:23