Brauchen Sie Hilfe.Wie speichert man das Ergebnis einer Funktion, die sysrefcursor zurückgibt?
Szenario: Es gibt eine Prozedur, in der wir einen Cursor haben. Ich muss eine Funktion aufrufen, die eine Eingabe von diesem Cursorwert nimmt und SYS_REFCURSOR
zurückgibt.
Ich muss dieses Ergebnis der Funktion in einer anderen Variablen speichern/Cursor & muss diesen Wert aus der Prozedur als out-Parameter zurückgeben.
Ich benutze Orakel 11g.
Bitte helfen! Wie ich vorgehen werde?
PFB Mein Ansatz:
create or replace procedure prc_test
(p_dept_id in number,
c_detail out sysrefcursor)--need to add extra out parameter
as
var1 varchar2(200) :=null;
begin
open c_detail for
select -1 from dual;
if p_dept_id is not null then
open c_detail for
select emp_no from emp
where dept_id=p_dept_id;
--i need to retrn value of 'get_emp_dtls' function as out parameter.
end if;
end procedure;
/
Funktion zu
CREATE OR REPLACE FUNCTION get_emp_dtls
(p_emp_no IN EMP.EMP_NO%TYPE)
RETURN SYS_REFCURSOR
AS
o_cursor SYS_REFCURSOR;
BEGIN
OPEN o_cursor FOR
SELECT
ENAME,
JOB
FROM emp
WHERE EMP_NO = p_emp_no;
RETURN o_cursor;
-- exception part
END;
/
Was hast du bisher gemacht? Bitte zeigen Sie Ihren Code. – MKR
Wie alle anderen Datentypen: 'somevar: = somefunction();' Was funktioniert nicht? –
Was ist der Datentyp von Somevar? tatsächlich wird meine Funktion einen Cursor zurückgeben, also war ich verwirrt über den Datentyp der Variablen? –