Appel de procédure stockée retournant curseur via Odbc
3 réponses
Franck
Bonjour,
je tente d'appeler via ODBC une proc=E9dure stock=E9e Oracle dont le
param=E8tre d'Output est un "Ref Cursor". (myStoredProc(param1 IN
Varchar2, param2 OUT Ref Cursor))
J'obtient l'erreur suivant : "Cannot bind PL/SQL Records or Cursor
References"
Quelqu^'un pourrait me dire comment d=E9clarer mon param=E8tre de sortie
?
-- -- Entête du package -- CREATE OR REPLACE PACKAGE AcheteurPkg AS TYPE REFCURSOR IS REF CURSOR ; PROCEDURE GetAcheteurByCode(Code IN NUMBER, Data OUT REFCURSOR); END AcheteurPkg; /
-- Procédure GetAcheteurByCode PROCEDURE GetAcheteurByCode ( Code IN NUMBER, Data OUT REFCURSOR ) IS BEGIN OPEN Data FOR SELECT NOMSAP_ACH, TYPEACHETEUR_ACH, MAIL_ACH FROM ACHETEUR WHERE CODESAP_ACH=Code; END;
--
-- Entête du package
--
CREATE OR REPLACE PACKAGE AcheteurPkg AS
TYPE REFCURSOR IS REF CURSOR ;
PROCEDURE GetAcheteurByCode(Code IN NUMBER, Data OUT
REFCURSOR);
END AcheteurPkg;
/
-- Procédure GetAcheteurByCode
PROCEDURE GetAcheteurByCode
(
Code IN NUMBER,
Data OUT REFCURSOR
)
IS
BEGIN
OPEN Data FOR
SELECT NOMSAP_ACH, TYPEACHETEUR_ACH, MAIL_ACH FROM ACHETEUR WHERE
CODESAP_ACH=Code;
END;
-- -- Entête du package -- CREATE OR REPLACE PACKAGE AcheteurPkg AS TYPE REFCURSOR IS REF CURSOR ; PROCEDURE GetAcheteurByCode(Code IN NUMBER, Data OUT REFCURSOR); END AcheteurPkg; /
-- Procédure GetAcheteurByCode PROCEDURE GetAcheteurByCode ( Code IN NUMBER, Data OUT REFCURSOR ) IS BEGIN OPEN Data FOR SELECT NOMSAP_ACH, TYPEACHETEUR_ACH, MAIL_ACH FROM ACHETEUR WHERE CODESAP_ACH=Code; END;
Bonjour, La procédure fonctionne bien. C'est au niveau de l'appel via OdbC que je n'arrive pas à déclarer le paramètre comme un curseur de retour.
adebaene
Franck wrote:
Bonjour, je tente d'appeler via ODBC une procédure stockée Oracle dont le paramètre d'Output est un "Ref Cursor". (myStoredProc(param1 IN Varchar2, param2 OUT Ref Cursor))
J'ai réussi a faire cela avec une procédure "pipelined" et en appelant la procédure ainsi :
new OdbcDataAdapter("SELECT * FROM TABLE(monpackage.maprocedure)
Arnaud MVP - VC
Franck wrote:
Bonjour,
je tente d'appeler via ODBC une procédure stockée Oracle dont le
paramètre d'Output est un "Ref Cursor". (myStoredProc(param1 IN
Varchar2, param2 OUT Ref Cursor))
J'ai réussi a faire cela avec une procédure "pipelined" et en
appelant la procédure ainsi :
new OdbcDataAdapter("SELECT * FROM TABLE(monpackage.maprocedure)
Bonjour, je tente d'appeler via ODBC une procédure stockée Oracle dont le paramètre d'Output est un "Ref Cursor". (myStoredProc(param1 IN Varchar2, param2 OUT Ref Cursor))
J'ai réussi a faire cela avec une procédure "pipelined" et en appelant la procédure ainsi :
new OdbcDataAdapter("SELECT * FROM TABLE(monpackage.maprocedure)