壹佰网|ERP100 - 企业信息化知识门户

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1797|回复: 2

动态sql是否可以这样用?

[复制链接]
发表于 2007/9/11 16:27:48 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。如果您注册时有任何问题请联系客服QQ: 83569622  。

您需要 登录 才可以下载或查看,没有帐号?注册

x
IF p_sum_type = '岗位级别' THEN
       l_excute_type := 'grade_id';
    ELSE
       l_excute_type := 'tax_code';
    END IF;

l_string_excute := 'select distinct t.'||l_excute_type||' from cux_qtcy_sum_t t';

FOR rec_group IN (exec(l_string_excute))LOOP
        ...
END LOOP;

代码如上
想根据p_sum_type这个变量来判断是从 cux_qtcy_sum_t表中抽取grade_id还是tax_code,这样写不可以么?我现在编译不通过。
请大家指点。
发表于 2007/9/11 21:18:11 | 显示全部楼层
有exec吗?
我只知道execute immediate 可以执行一条动态SQL语句。
你这样写得很别扭
发表于 2007/9/12 11:56:19 | 显示全部楼层
DECLARE
   l_sql      VARCHAR2 (200)
      := 'select AT.OBJECT_NAME from all_objects AT where ROWNUM<2 AND at.OBJECT_TYPE=:p_type';

   TYPE t_ref_cursor IS REF CURSOR;

   p_type     VARCHAR2 (50)  := 'INDEX';
   test_rec   t_ref_cursor;
   l_temp     VARCHAR2 (50);
BEGIN
   OPEN test_rec FOR l_sql USING p_type;

   LOOP
      FETCH test_rec
       INTO l_temp;

      EXIT WHEN test_rec%NOTFOUND;
      DBMS_OUTPUT.put_line ('ddd' || l_temp);
   END LOOP;

   CLOSE test_rec;
END;
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|小黑屋|手机版|壹佰网 ERP100 ( 京ICP备19053597号-2 )

Copyright © 2005-2012 北京海之大网络技术有限责任公司 服务器托管由互联互通
手机:13911575376
网站技术点击发送消息给对方83569622   广告&合作 点击发送消息给对方27675401   点击发送消息给对方634043306   咨询及人才点击发送消息给对方138011526

GMT+8, 2025/11/30 16:50 , Processed in 0.012079 second(s), 16 queries , File On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表