2

iSeries Navigator、IBM iSeries Access for Windows バージョン 5 リリース 4、「Run SQL Scripts」ユーティリティを使用して、IBM DB2 を初めて使用します。

このユーティリティで変数を使用することはできますか? 多くのスタック オーバーフローの回答 (および他のフォーラムの回答) では、次のようなコードを使用するように指示されています。

BEGIN ATOMIC
DECLARE x VARCHAR(1);
SET x = 'A';
SELECT * FROM  MySchema.MyTable Where MyColumn = x;
END@

これは「SQL スクリプトの実行」ユーティリティ内では機能せず、「Token ATOMIC was not valid」という例外がスローされます。キーワード ATOMIC を削除すると、「トークン X は無効でした」というエラーが表示されます。BEGIN 行と END 行全体を削除すると、「Token VARCHAR was not valid.」というエラーが表示されます。

別の回答セットでは、次のようなコードを使用するように指示されていますが、これも同じ「...無効」エラーで失敗します。

CREATE VARIABLE x VARCHAR(1) DEFAULT ('A');
SELECT * FROM MySchema.MyTable WHERE MyColumn = x;
DROP VARIABLE x;

「SQL スクリプトの実行」ユーティリティで変数を宣言することは可能ですか?

4

1 に答える 1

3

グローバル変数のサポートと動的複合ステートメントのサポートは、7.1 で DB2 for i に追加されました。

システム自体はまだ v5r4 を実行していますか? それとも、クライアント アクセスのバック レベル バージョンを実行しているだけですか? 後者の場合は、IBM iAccess を 7.1 にアップグレードします。前者の場合は、システムがアップグレードされるまで SOL です。

于 2014-03-22T23:33:37.827 に答える