SQL0104N
"<text>" に続いて予期しないトークン "<token>" が見つかりました。 予期されたトークンに "<token-list>" が含まれている可能性があります。
説明
SQL ステートメントまたは SYSPROC.ADMIN_CMD プロシージャーの入力コマンド・ストリングの構文エラーが、テキスト "<text>" の 後の示されたトークンに見つかりました。 「"<text>"」フィールドは、無効なトークンの前にある 20 文字の SQL ステートメントまたは SYSPROC.ADMIN_CMD プロシージャーの入力コマンド・ストリングを示しています。
解決の手掛かりとして、"<token-list>" として、SQLCA の「SQLERRM」フィールドに有効なトークンの一部のリストが提供されます。 このリストは、その時点までのステートメントが正しいと想定しています。
このメッセージが返されるのは、コマンド・モードでテキストがコマンド行プロセッサー (CLP) に渡されたものの、単一引用符や二 重引用符など、オペレーティング・システム・シェルによって解釈される特殊文字が、エスケープ文字によって識別されずにテキストに含まれている場合です。
ステートメントは処理できません。
ユーザーの処置
以下のいずれかの方法で、このエラーに対処してください。
・示されたトークンの領域内のステートメントを調べて、修正してください。
・コマンド・モードで CLP を使用しており、コマンド内に引用符などの何らかの特殊文字が含まれている場合には、円記号 (¥) などのエスケープ文字を使用して、オペレーティング・システム・シェルがそれらの特殊文字に対して特別なアクションをとらないようにします。 また、対話モードまたはバッチ・モードで CLP を使用してステートメントを発行することにより、オペレーティング・システム・シェルによる特殊文字の処理を避けることもできます。
コード
-
SQLCODE : -104
SQLSTATE : 42601
原因・対処例
SQLの文法が誤っている場合。
SQL文を注意深く確認し誤りを訂正する。
例えば、以下のSQLを実行するとエラーが発生します。
SQL> SELECT CUST_NO, CUST_NAME, 2 FROM MST_CUSTOMER; 行 1 の近くでエラー: SQL0104N " FROM MST_CUSTOMER" に続いて予期しないトークン "END-OF-STATEMENT" が見つかりました。予期された トークンに"<table_expr>" が含まれている可能性があります。
SQLを確認すると、SELECT句に記述された最後の項目の後に「,」カンマがあります。
誤ってカンマを入力したか、次の項目を入力し忘れていることが考えられます。
カンマの入力誤りとしてカンマを削除して実行すると結果が返ってきます。
SQL> SELECT CUST_NO, CUST_NAME 2 FROM MST_CUSTOMER; CUST_NO CUST_NAME ------------- ----------------------------------- 1 佐藤 一郎 2 鈴木 和夫 3 高橋 花子 4 田中 翔太 5 渡辺 明日香 99 白石 七瀬