web-dev-qa-db-ja.com

IBM System i Access for Windows GUIツールでストアード・プロシージャーを呼び出す方法

AS400システムで実行されているDB2ストアドプロシージャをテストしたいと思います。

IBM System i Access for Windowsがインストールされていて、DB2データベースに対してSQLコマンドを実行できます。

私の質問は、パラメーターを受け取り、結果を出力パラメーターとして返し、その値を画面に出力するストアード・プロシージャーを実行するための構文は何ですか?

ただ明確にするために、私はコードでプロシージャを呼び出す方法を尋ねていません。プロシージャを実行して、GUIツール(SQL Enterprise Managerに似ています)で結果を確認したいと思います。

13
Ken Burkhardt

キーワードcallを使用して、パラメーターを渡します。

call myStoredProc(parm1, parm2, ?);

詳細については、ここを参照してください http://www.ibm.com/developerworks/data/library/techarticle/dm-0503melnyk/ 。興味深い部分は図5.コマンドエディターを使用してSQLプロシージャを呼び出す

23
Peter Schuetze

あなたが欲しいものは可能です。私は何度も自分でやったことがあります。不幸なことに、私は現在オフィスにいないので、頭の上から来ている必要があります。

  1. System i Accessを開始する
  2. ISeriesアイコンに移動し、ストアード・プロシージャーが存在するアイコンにログオンします
  3. データベースのアイコンに移動し、正しいものに接続します(ローカルが1つ、リモートが1つ以上あります)。
  4. その後、画面の下部に「SQLスクリプトを実行」オプションが表示されます
  5. そのオプションを開始すると、SQLエディターが表示されます(上部にエディター、下部にビューアー/メッセージ)。
  6. すでに正しいiSeriesに接続されていますが、JDBC要求は接続のユーザープロファイルの* LIBLを取得することに注意してください。したがって、ストアドプロシージャのスキーマ(iseriesライブラリ)を知っている必要があります。
  7. 「call YOURSCHEMA.YOURSTOREDPROCEDURE(?、?);」と入力しますメニューまたはショートカットを使用してそのステートメントを実行します。 JDBC設定(メニューを参照)によっては、正しい構文が「。」ではなく「/」になる場合があることに注意してください。また、最初の疑問符を値に置き換えることができることに注意してください。

補足として、

  • IAccessでは、すべてのスキーマの下にテーブル、ビューなどのアイコンが表示されます。ストアドプロシージャのアイコンも使用できます。 SPがあります。オプションを使用して定義などを確認します。この情報には、パラメータに関する詳細情報が含まれています
  • ISeriesでそれを確認したい場合は、システムカタログを使用します(これはSQLエディターからも行うことができます)。 'YOURSTOREDPROCEDURE'; "

非常に重要:iSeries自体のSQLエディター(STRSQL)でSPをテストすることはできませんでした。iAccessSQLエディターのみが正しく機能しました。

7
robertnl

SPのように実行できるはずです。

DECLARE  
 usr_in  YOUR_TABLE.YOUR_COLM%TYPE; --Gets the correct type by looking at column type
 app_in  YOUR_TABLE.YOUR_OTHER_COLM%TYPE;

BEGIN
 usr_in:='some value';
 app_in:='another_value';

 YOUR_SP_NAME(usr_in, app_in);  
END;  

または、EXECUTEを使用できますが、動的に準備することはできず(Javaで実行しない)、他にもいくつかの欠点があると思います。

EXECUTE myStoredProc(parm1, parm2, ?);
0
Philip Rego