La façon standard dont nos applications transmettent les informations des procédures Oracle stockées au fournisseur .net oracle est via un paramètre de curseur out ref.Oracle - Comment avoir un paramètre de curseur out ref dans une procédure stockée?
Dans le passé, toutes nos procédures stockées utilisées pour être en paquets et avait quelque chose comme ceci:
CREATE OR REPLACE PACKAGE test_package IS
TYPE refcur IS REF CURSOR;
PROCEDURE get_info (o_cursor OUT refcur);
END test_package;
/
CREATE OR REPLACE PACKAGE BODY test_package IS
PROCEDURE get_info (o_cursor OUT refcur) AS
BEGIN
OPEN o_cursor FOR
SELECT * FROM v$database;
END get_info;
END test_package;
/
Maintenant, je voudrais passer cette procédure get_info de l'emballage et dans une procédure régulière mais ne Je ne sais pas quoi faire pour obtenir le type de refcur. Comment puis-je le créer en dehors de la portée du package?
CRÉER OU REMPLACER TYPE refcur IS REF CURSEUR;
ne fonctionne pas.
? : = La ligne crsr_test_result est parce qu'une application Java JDBC appelle ce bloc de sql et obtient le curseur ref. C'est ma technique de raccourci quand je veux accomplir quelque chose avec pl/sql de Java sans placer la logique dans une procédure stockée. Mais il pourrait tout aussi bien être une procédure stockée. –
Je ne pense pas que cela puisse être car il doit y avoir un paramètre de type refcur qui est en dehors de la portée dans laquelle vous créez le type. –