2

私はたくさん検索しましたが、何も見つかりませんでした..パラメータなしでプロシージャ( Informix )を作成して呼び出す方法があるかどうかを尋ねたいだけです。1 つまたは複数の値 (プロシージャおよび関数) を返す方法は知っていますが、これは私が望んでいるものではありません。Informix で出力パラメータが許可されていない場合は、非常に奇妙です。

前もって感謝します!

EDIT:はい、可能であることがわかりましたが、まだそのような手順を実行できません。例えば:

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

私が受け取るものは次のとおりです。

ルーチン mytest を解決できません

これは、出力パラメーターを使用して関数を実行する場合にのみ発生します..

4

1 に答える 1

2

なぜ「out」パラメータが必要なのですか? Informix プロシージャは、1 回の呼び出しで複数の値 (または、この場合は 1 つの値) を返すことができます。

  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;

OUT パラメータを使用できる場所は限られています。1 つはクエリにあります。いくつかのエラー メッセージに表示される名前 SLV (ステートメント ローカル変数) があります。Java (JDBC) 経由で OUT パラメータにアクセスする方法もあると思います。私の知る限り、他のAPIでは許可されていません。

Informix 用に作成されたコードは、出力パラメータが不要であることを前提としています。単一のプロシージャから複数の出力値を提供しない他の (貧弱な?) システムから Informix に移行されたコードは、Informix で適切に動作するように再考する必要があります。

于 2010-10-07T15:30:11.187 に答える