oracle 开发动态sql,动态sql报错, - Oracle开发 - ITPUB论坛-中国专业的IT技术社区...

字符类型常量要用''转义的单引号包围

SQL> DECLARE

2    v_paid_type           NUMBER;

3    v_temp_paid_draw_list VARCHAR2(320) := '32108,79253,79254';

4    p_ticket_no           VARCHAR2(320) := '006850214210098015645';

5    p_password            VARCHAR2(320) := '3f9,XzvsiGrsC4sRMWzdG3IJinv4';

6  BEGIN

7    EXECUTE IMMEDIATE 'SELECT nvl(paid_type, 0)

8         FROM test1

9         WHERE draw_id in (' || v_temp_paid_draw_list || ' )

10            AND ticket_no = ' || p_ticket_no || '

11             AND password =  ' || p_password || '

12          GROUP BY clerk_id, nvl(paid_type, 0) '

13      INTO v_paid_type;

14    dbms_output.put_line(v_paid_type);

15  END;

16  /

DECLARE

*

第第 1 行行出出现现错错误误:

ORA-00933: SQL 命命令令未未正正确确结结束束

ORA-06512: 在在 line 7

SQL> DECLARE

2    v_paid_type           NUMBER;

3    v_temp_paid_draw_list VARCHAR2(320) := '32108,79253,79254';

4    p_ticket_no           VARCHAR2(320) := '006850214210098015645';

5    p_password            VARCHAR2(320) := '3f9,XzvsiGrsC4sRMWzdG3IJinv4';

6  BEGIN

7    EXECUTE IMMEDIATE 'SELECT nvl(paid_type, 0)

8         FROM test1

9         WHERE draw_id in (' || v_temp_paid_draw_list || ' )

10            AND ticket_no = ' || p_ticket_no || '

11             AND password =  ''' || p_password || '''

12          GROUP BY clerk_id, nvl(paid_type, 0) '

13      INTO v_paid_type;

14    dbms_output.put_line(v_paid_type);

15  END;

16  /

PL/SQL 过过程程已已成成功功完完成成。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值