2 votes

Informix : procédure avec paramètres de sortie ?

J'ai beaucoup cherché, mais je n'ai rien trouvé... Je veux juste demander s'il y a un moyen de créer et d'appeler une procédure (Informix) sans paramètres. Je sais comment renvoyer une ou plusieurs valeurs (pour les procédures et les fonctions), mais ce n'est pas ce que je veux. Ce serait vraiment étrange si Informix ne permettait pas les paramètres de sortie...

Merci d'avance !

MODIFIER : Oui, j'ai vu que c'est possible, mais je n'arrive toujours pas à exécuter une telle procédure. Par exemple :

  CREATE PROCEDURE mytest(batch INT,OUT p_out INT)  
  DEFINE inc INTEGER;  
  LET inc = 1;  
  LET p_out = 5;  
  END PROCEDURE;  

et ce que je reçois est :

La routine mytest ne peut pas être résolue

et cela se produit uniquement lors de l'exécution de fonctions avec des paramètres de sortie...

2voto

Jonathan Leffler Points 299946

Pourquoi avez-vous besoin de paramètres 'out'? Les procédures Informix peuvent renvoyer de multiples valeurs lors d'un seul appel (ou, dans ce cas, une seule valeur):

  CREATE PROCEDURE mytest(batch INT) RETURNING INT AS p_out;
      DEFINE inc INTEGER;
      DEFINE p_out INTEGER;
      LET inc = 1;
      LET p_out = batch + inc;
      RETURN p_out;
  END PROCEDURE;

Il n'y a qu'un nombre limité d'endroits où vous pouvez utiliser un paramètre OUT. L'un d'eux est dans une requête - il y a un nom SLV (variable locale de déclaration) qui apparaît dans certains messages d'erreur. Je crois qu'il y a un moyen d'accéder aux paramètres OUT via Java (JDBC) aussi. À ma connaissance, d'autres API ne le permettent pas.

Le code écrit pour Informix suppose qu'il n'aura pas besoin de paramètres de sortie. Les codes migrés vers Informix à partir d'autres systèmes (appauvris?) qui ne fournissent pas plusieurs valeurs de sortie à partir d'une seule procédure doivent être repensés pour fonctionner de manière sensée avec Informix.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X