如何在oracle的存储过程里调用动态变量
点击次数:144 次 发布日期:2008-09-19 14:13:37 作者:源代码网
|
源代码网推荐
代码如下:
create or replace procedure SYSRINGALL_TEST is all_tmp_name char(30); all_name char(30); begin if all_tmp_name is null then select "ring_all_old_"||to_char(sysdate,"yyyymm")||"_tmp" into all_tmp_name from dual; end if; if all_name is null then select "ring_all_old_"||to_char(sysdate,"yyyymm") into all_name from dual; end if; ------由ALL进TMP--------- insert into all_tmp_name select * from all_name; commit; end SYSRINGALL_TEST;
源代码网整理以下 ==========================
源代码网整理以下 其实就是想动态生成ring_all_old_200606和ring_all_old_200606_tmp
源代码网整理以下 这两个表名让下面使用
源代码网整理以下 但老是编译出错,如果把下面改成 软件开发网 www.mscto.com
源代码网整理以下 insert into ring_all_old_200606_tmp 软件开发网 www.mscto.com
源代码网整理以下 select * from ring_all_old_200606;
源代码网整理以下 就能编译通过.
源代码网整理以下 请问该怎样改啊?
create or replace procedure SYSRINGALL_TEST is all_tmp_name char(30); all_name char(30); tmp_str varchar(2000); begin if all_tmp_name is null then select "ring_inkfish_"||to_char(sysdate,"yyyymm")||"_tmp" into all_tmp_name from dual; end if; if all_name is null then select "ring_inkfish_"||to_char(sysdate,"yyyymm") into all_name from dual; end if; tmp_str :="insert into "||all_tmp_name||" select * from "||all_name; execute immediate tmp_str; commit; end SYSRINGALL_TEST; 源代码网推荐
源代码网供稿. |