Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Usenet -> c.d.o.tools -> Re: PL/SQL 8.1.6 : RETURNING CLAUSE problems [REVISED]
Sorry people,
Give all relevant information before asking questions.... good motto to live by... :)
I couldn't include proprietary code in my post so I just made up an example on the fly...and consequently got it wrong...
What follows is my test script....
CREATE OR REPLACE
PACKAGE tstRETURNING
IS
PROCEDURE tstProc
(
pnValue IN NUMBER,
pnoKey OUT NUMBER
);
END tstRETURNING;
/
CREATE OR REPLACE
PACKAGE BODY tstRETURNING
IS
PROCEDURE tstProc
(
pnValue IN NUMBER,
pnoKey OUT NUMBER
)
IS
BEGIN
INSERT INTO T_TMP_RETURNING ( K_KEY, N_VALUE )
SELECT SEQ_TMP_RETURNING.NEXTVAL, pnValue
FROM DUAL
RETURNING K_KEY INTO pnoKey;
END tstProc;
END tstRETURNING;
/
SHOW ERRORS;
/
DECLARE
var NUMBER;
BEGIN
tstRETURNING.tstPROC( 100, var );
END;
/
I assumed that it would be a supported concept in 8.1.6 - am I wrong? (Obviously only returning the LAST inserted value into the variable)
Does anyone know? Any work arounds?
How about capacity for bulk-binds - ie. get a collection of the returned /
inserted keys?
Lachlan Pitts
"Jacques Desmazieres" <nospam.jacques.desmazieres_at_is2france.com> wrote in
message news:Ybxd5.484$IO2.2148379_at_nnrp1.proxad.net...
> First there is a syntax error in this function: you have to specify the
> return code in the function prototype, or you should use a procedure
instead
>
>> IS
> PROCEDURE domainWriteQuery
> (
> pnValue IN NUMBER,
> pnNewKey OUT NUMBER )
>
>> RETURN NUMBER
> FUNCTION domainWriteQuery
> (
> pnValue IN NUMBER
> )
>> END domainWriteQuery;
> RETURN pnNewKey;
> >
![]() |
![]() |