Besoin d'aide. Scénario: Il existe une procédure à l'intérieur de laquelle nous avons un curseur. Je dois appeler une fonction qui prendra une entrée de cette valeur de curseur et retournera SYS_REFCURSOR
.Comment stocker le résultat d'une fonction qui retournera sysrefcursor?
Je dois stocker ce résultat de la fonction dans une autre variable/curseur & besoin de retourner cette valeur de la procédure en tant que paramètre out.
J'utilise Oracle 11g.
Aidez s'il vous plaît! Comment vais-je procéder?
PFB Mon approche:
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;
/
fonction à appeler
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;
/
Qu'avez-vous fait jusqu'à maintenant? S'il vous plaît montrer votre code. – MKR
Identique à tout autre type de données: 'somevar: = somefunction();' Qu'est-ce qui ne fonctionne pas? –
quel sera le type de données de somevar? en fait ma fonction va retourner un curseur, donc j'ai été confus au sujet du type de données de varable? –