Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.server -> Re: passing in list of values in stored procedure

Re: passing in list of values in stored procedure

From: <boukerker.abdel_at_gmail.com>
Date: Tue, 02 Oct 2007 15:42:38 -0000
Message-ID: <1191339758.266820.110910@n39g2000hsh.googlegroups.com>


On 1 oct, 17:42, "tiffanyth..._at_gmail.com" <tiffanyth..._at_gmail.com> wrote:
> Hi,
> Can someone tell me what I'm doing wrong in the following code? I
> would like to pass in a list of numbers such as (1,2) to a WHERE
> clause in my stored procedure but it kept complaining "ORA-01722:
> invalid number" when the procedure was executed.
>
> create or replace procedure myproc (v_idlist in varchar2) AS
> v_id number;
> v_name varchar2(20);
> cursor g_name IS
> select id, name from mytab where id in (v_idlist);
>
> begin
> open g_name;
> loop
> dbms_output.put_line('idlist = '||v_idlist);
> fetch g_name into v_id,v_name;
> exit when g_name%NOTFOUND;
> dbms_output.put_line('id = '||v_id);
> dbms_output.put_line('name = '||v_name);
> end loop;
> close g_name;
> end;
> /
>
> SQL> exec myproc('1')
> idlist = 1
> id = 1
> name = JANE
> idlist = 1
>
> PL/SQL procedure successfully completed.
>
> SQL> exec myproc('''1'',''2''');
> idlist = '1','2'
> BEGIN myproc('''1'',''2'''); END;
>
> *
> ERROR at line 1:
> ORA-01722: invalid number
> ORA-06512: at "TTHANG.MYPROC", line 11
> ORA-06512: at line 1
>
> SQL> select id, name from mytab where id in ('1','2');
> ID NAME
> ---------- --------------------
> 1 JANE
> 2 GEORGE
>
> 2 rows selected.
>
> Thanks.

try to put ' and not " Received on Tue Oct 02 2007 - 10:42:38 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US