ablog

不器用で落着きのない技術者のメモ

SP2-0734: unknown command beginning "CASE WHEN ..." - rest of line ignored.

正しい SQL なはずなのに、SQL*Plus で実行すると、SP2-0734 が発生する。

SQL> @test.sql
SP2-0734: unknown command beginning "CASE WHEN ..." - rest of line ignored.
...

エラーになっている箇所を見てみると、

      END COL1,

      CASE WHEN

空行を削除して、

$ perl -i.org -ne '/^\s*$/ or print' test.sql

再実行してみると、

SQL> @test.sql

1 rows selected

おk!
というわけで原因は空行だった。


つまり、

SQL> select * from
  2  
SQL> dual;
SP2-0042: unknown command "dual" - rest of line ignored.

こういうこと。


「SP2-」って何だろ?たぶん、SQL*Plus の SP な気がする。
「ORA-」はサーバープロセスとかが返すエラーで、「SP2-」はSQL*Plusが返すエラーじゃないかと。