Domanda

Ho cercato un sacco, ma non riusciva a trovare nulla .. Voglio solo chiedere se c'è qualche modo per creare e chiamare una procedura ( Informix ) con fuori i parametri. Io so come restituire uno o più valori (per le procedure e per le funzioni), ma questo non è quello che voglio. Sarebbe davvero strano, se Informix non consente parametri di output ..

Grazie in anticipo!

Modifica : Sì, ho visto che è possibile, ma non riesco ancora a eseguire tale procedura. Ad esempio:

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

e quello che ricevo è:

La mytest routine non può essere risolto

e questo avviene solo su eseguire funzioni con parametri di uscita ..

È stato utile?

Soluzione

Perché avete bisogno di 'fuori' i parametri? procedure Informix possono restituire valori multipli da una singola chiamata (o, in questo caso, un singolo valore):

  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;

Ci sono solo un numero limitato di posti in cui è possibile utilizzare un parametro OUT. Uno è in una query - c'è un nome SLV (dichiarazione variabile locale) che si trasforma in alcuni messaggi di errore. Credo che ci sia un modo per ottenere i parametri tramite JDBC (Java) troppo. Per quanto ne so, altre API non consentono di esso.

Il codice scritto per Informix presuppone che non avrà bisogno di parametri di output. Codice migrato a Informix da altri sistemi (impoveriti?) Che non forniscono i valori di output multipli da una singola procedura di necessità di essere ripensato al lavoro sensibilmente con Informix.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top