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

Home -> Community -> Mailing Lists -> Oracle-L -> Re: Oracle9i Error within Cursor

Re: Oracle9i Error within Cursor

From: Stephane Faroult <sfaroult_at_oriole.com>
Date: Thu, 03 Jan 2002 04:18:26 -0800
Message-ID: <F001.003E5B4E.20020103035017@fatcity.com>

Michal Zaschke wrote:
>
> Hi all,
> I wrote a script bellow. If it is run on Oracle 8 it runs fine and
> gives me all the result but on Oracle 9i it returns the error ORA-06502.
> Can anybody tell me please why?
> I have found a workaround - instead of
> select col||'x' colu from tbl union select col colu from tbl;
> use
> select col||'x' colu from tbl union select col||null colu from tbl;
> But it doesn't tell me, why the first statement doesn't work on 9i.
>
> Thak you for your responses.
>
> Mike
>
> <<<script>>>
> set serveroutput on
> create table tbl (col varchar2(1));
> insert into tbl values ('a');
> insert into tbl values ('b');
> select * from tbl;
> select col||'x' colu from tbl union select col colu from tbl;
> declare
> cursor cA is
> select col||'x' colu from tbl union select col colu from tbl;
> begin
> for vA in cA loop
> dbms_output.put_line(vA.colu);
> end loop;
> end;
> /
> drop table tbl;
> <<</script>>>
>
> The error message:
> SQLWKS> declare
> 2> cursor cA is
> 3> select col||'x' colu from tbl union select col colu from
> tbl;
> 4> begin
> 5> for vA in cA loop
> 6> dbms_output.put_line(vA.colu);
> 7> end loop;
> 8> end;
> 9> /
> ORA-06502: PL/SQL: numeric or value error
> ORA-06512: at line 5
>

It looks like it's more strict about types. col || 'x' cannot be a varchar(1) like col alone. I have not tried it but I guess that using for instance rtrim(rpad()) would have roughly the same effect as your solution - which I prefer.

-- 
Regards,

Stephane Faroult
Oriole Ltd
-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.com
-- 
Author: Stephane Faroult
  INET: sfaroult_at_oriole.com

Fat City Network Services    -- (858) 538-5051  FAX: (858) 538-5051
San Diego, California        -- Public Internet access / Mailing Lists
--------------------------------------------------------------------
To REMOVE yourself from this mailing list, send an E-Mail message
to: ListGuru_at_fatcity.com (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You may
also send the HELP command for other information (like subscribing).
Received on Thu Jan 03 2002 - 06:18:26 CST

Original text of this message

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