4

DB2 データベースで実行されない次の SQL ステートメントがあります。

WITH a AS (
    SELECT * FROM sysibm.systables
)
SELECT a.* FROM a
FETCH FIRST 10 ROWS

FETCHステートメントがなくても機能します。私が得るエラーメッセージは次のとおりです。

キーワード OPTIMIZE、トークン ERR_STMT WNG_STMT GET SQL SAVEPOINT HOLD FREE ASSOCIATE の不正使用が予期されていました。

助言がありますか?

4

3 に答える 3

7

ONLYFETCH 句の最後にキーワードがありません。

WITH a AS (
    SELECT * FROM sysibm.systables
)
SELECT a.* FROM a
FETCH FIRST 10 ROWS ONLY;
于 2011-09-27T15:38:42.617 に答える
0

最後に唯一のキーワードがありません。例はこちら

于 2011-09-27T15:45:02.823 に答える
0

あなたの例は単純化されている可能性がありますが、最初の選択部分に fetch first 句を入れるのはどうですか?

ドキュメントをはっきりと読むことはできませんが、with-statement は common-table-expression を作成するため、そこから選択する際に fetch-first-clause を使用できない場合があります。このドキュメントによると、 with ステートメントの選択に fetch-first-clause を含めることは有効な構文です。

すなわち

WITH a AS (
SELECT * FROM sysibm.systables
FETCH FIRST 10 ROWS ONLY
)
SELECT a.* FROM a;
于 2011-09-29T09:22:05.313 に答える