PLS-00103
エラーメッセージ
PLS-00103: 記号""が見つかりました。 次のうちの1つが入るとき: PLS-00103: Encountered the symbol "" when expecting one of the following:
基本的なエラーの内容
・PL/SQL、PL/SQLブロックでの構文解析エラー
基本的には「記号""が見つかりました。」のダブルクォーテーションでくくられる文字の直前に問題がある。
例えば「PLS-00103: 記号"END"が見つかりました。」の場合はENDの直前の行でセミコロンを忘れているなどが考えられる。
確認事項および対応
- 「記号""が見つかりました。」のダブルクォーテーションでくくられる文字の直前の文字列の記述に間違いがないか確認する。
上記のようにダブルクォーテーションでくくられる文字が無い場合は、ソースコード上に全角空白が入っていないか確認する。
よくある例
- 行末のセミコロンを忘れている
- 表名、列名、変数名などのスペルミス
- ソース上に全角空白が混じっている
- FOR-END LOOP、IF-THEN-ELSE-END IF の対応が合っていない
- 代入演算子、比較演算子の記述方法が異なっている [誤]cnt=cnt+1; → [正]cnt:=cnt+1;
詳細
構文エラーの為、基本的には該当部分の前後の記述方法を確認するしかありません。
切り分け方法として以下を確認することが解決の手助けになる場合があります。
・SELECT文の途中でエラーになっている場合はINTO句などを削除してSQL文だけで実行できるか確認する。
・該当エラーの直前や直後に DBMS_OUTPUT.PUT_LINE('test'); などを挿入してエラーの出力のされ方が変わらないか確認する。
どうしても解決できない場合は該当部分や、その直前の行をいったん削除した上でコンパイルを実行し、エラーが再現するか、別の個所のエラーにならないかを確認することで問題の箇所をより具体的に知ることができます。