Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Usenet -> c.d.o.misc -> Re: Use of an array NOT number cause error
On Jul 6, 1:29 pm, Mariano <mariano.calan..._at_gmail.com> wrote:
> Then I've this function:
>
> ======================================
>
> FUNCTION "SEMIAUTO"(px NUMBER)
>
> RETURN automatiche AS
>
> results automatiche := automatiche();
>
> CURSOR c_class IS
> SELECT id_mal, SUM(percent) AS p
> FROM malattie_sintomi
> WHERE id_sin IN (px)
> and id_mal in (select id_mal from malattie_sintomi group by
> id_mal having count(*) >= 1)
> GROUP BY id_mal;
>
> BEGIN
> FOR v_Rec IN c_class LOOP
> results.EXTEND;
> results(results.LAST) := automatica(v_Rec.id_mal,
> v_Rec.p);
> END LOOP;
> RETURN results;
> END;
>
> ======================================
>
> As you could see, this function accept a NUMBER in input, this number
> will be a parameter of my cursor c_class.
> But number it's not usefull for my job, I need to pass an unknow
> number of NUMBER (sorry for words joke :D) a sort of array.
>
> I've write:
>
> type sinArray is table of number;
>
> and now header of my function is something like
>
> FUNCTION "SEMIAUTO"(px SINARRAY)
>
> But in this way i have a conflict and a message advise me that is
> needed NUMBER not SINARRAY.
>
> What I can do?
If parameter PX is a SINARRAY then the IN clause should be
IN (SELECT column_value FROM TABLE(px))
and not
IN (px) Received on Fri Jul 06 2007 - 12:16:45 CDT
![]() |
![]() |