免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1138 | 回复: 1
打印 上一主题 下一主题

请教一个关于动态SQL的弱智问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-03-17 19:57 |只看该作者 |倒序浏览
CREATE OR REPLACE PROCEDURE mxf_0310_new AS
              v_new_type_id  type_id.new_type_id%TYPE;
   CURSOR c_new_type_id IS SELECT new_type_id FROM test.type_id
                   WHERE OLD_type_id IS NOT NULL AND ROWNUM <3 GROUP BY new_type_id;
BEGIN
OPEN c_new_type_id;
LOOP
FETCH c_new_type_id INTO v_new_type_id;
EXIT WHEN c_new_type_id%NOTFOUND;
         
     EXECUTE IMMEDIATE '
     CREATE TABLE new_type_id_'||v_new_type_id||'
     AS SELECT * FROM call_ticket_day01 where rownum <=0';
              FOR i IN 1..3 LOOP
                                            
                  EXECUTE IMMEDIATE '
         INSERT INTO new_type_id_'||v_new_type_id||'
SELECT * FROM mypb.call_ticket_day'
               ||trim(TO_CHAR(i,'09'))||'  WHERE v_new_type_id= TYPE_ID '
                   COMMIT;
              END LOOP;
                          
END LOOP;
CLOSE c_new_type_id;
END;
/

报措信息为:new_type_id_'||v_new_type_id||'部分的v_new_type_id标识错误

请问:
1、在向动态表insert 的时候表名不能引用变量名吗?
2、如何解决这个问题

谢谢先

论坛徽章:
0
2 [报告]
发表于 2005-03-22 04:25 |只看该作者

请教一个关于动态SQL的弱智问题

你不能直接使用sql语句,应该生成sql字符串然后用其他方法运行如:
EXECUTE IMMEDIATE 'STRING'

OR

OPEN FOR

OR

DBMS_SQL.PARSE
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP