字符类型常量要用''转义的单引号包围
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 过过程程已已成成功功完完成成。。