Während der Migration von Oracle zu PostgreSQL. Ich stoße auf ein Problem: Prozedur mit OUT-Parametern in einem PostgreSQL-Paket funktioniert nicht. Wann immer die Prozedur ausgeführt wird, heißt es Prozedur existiert nicht.Prozedur mit OUT-Parametern in einem PostgreSQL-Paket funktioniert nicht
CREATE OR REPLACE PACKAGE pkg_productdetails
IS
Procedure p_getprod_details(in_locationid numeric, OUT cur_Product_typedetails refcursor, OUT cur_Productlist refcursor);
END pkg_productdetails;
CREATE OR REPLACE PACKAGE BODY pkg_productdetails
IS
Procedure p_getprod_details(in_locationid numeric, OUT cur_Product_typedetails refcursor, OUT cur_Productlist refcursor) IS
BEGIN
OPEN cur_Product_typedetails FOR
--select the cur_Product_typedetails ;
OPEN cur_Productlist FOR
--select the cur_Productlist;
END;
END pkg_productdetails;
, wenn ich diese Prozedur ausführen, sagen Sie es pkg_productdetails.p_getprod_details (numerisch) nicht existieren.
SELECT pkg_productdetails.p_getprod_details(10001);
@ a_horse_with_no_name ja, ich bin mit EnterpriseDB – Paarth
Sie eine Prozedur aufrufen, die nur drei Parameter hat mit einem und zwei von ihnen sind OUT? Sie benötigen zwei Cursor-Variablen, die an diese Prozedur gesendet werden. – Mottor
@Mottor, wenn wir diesen pacakge.procedure aus dem Code mit allen 3 Parametern aufrufen (1 IN und 2 OUT). Es gibt denselben Fehler. – Paarth