Bonjour,

Je n'arrive pas à appeller une fontion d'un package en SQL dynamique.

J'ai essayé ça:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
DECLARE
  TYPE refCursor is ref cursor;
  myCursor refCursor;
  plsql_block VARCHAR2(500);
BEGIN
  plsql_block := 'BEGIN :myCursor := Mon_package.Ma_procedure; END;';
  EXECUTE IMMEDIATE plsql_block USING OUT myCursor;
END;
et ça:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
DECLARE
  TYPE refCursor is ref cursor;
  myCursor refCursor;
  plsql_block VARCHAR2(500);
BEGIN
  plsql_block := 'BEGIN Mon_package.Ma_procedure; END;';
  EXECUTE IMMEDIATE plsql_block INTO myCursor;
END;
Dans les deux cas j'ai une des erreurs suivantes :
1 - "Exception d'E/S : Software cause connection abort : socket write error"
2 - "Il n'y plus de données à lire dans la socket"
3 - "OALL8 est dans un état incohérent"

Quelqu'un a t'il la solution ?