ここでは、最近遭遇した次の Oracle エラーについて愚痴を言いながら掲載しています。
ORA-00972: 識別子が長すぎます。
そもそも、このエラーが発生したのはサブクエリの名前を長くしろって言ってくるアイツが原因です。ボケ!
スポンサーリンク
ORA-00972となったSQL
エラーとなったのは次のようなSQLです。記憶で書いてますので間違っているかもしれませんが、雰囲気でわかると思います。サブクエリにつけた名前が30文字だか、30バイト以上あるとエラーとなってしまいます。
select table1.col1, table1.col2, table1.col3 from table11 inner join ( select col1, col2 from table2 ) SUBQUERY_NO_NAMAEGA_NAGASUGITE_IMIWAKARANNODAGA_AITSUHA_WAKARUTO_IIHARU -- ← 30文字(30バイト)以上 on table1.col1 = SUBQUERY_NO_NAMAEGA_NAGASUGITE_IMIWAKARANNODAGA_AITSUHA_WAKARUTO_IIHARU.col1 and table1.col2 = SUBQUERY_NO_NAMAEGA_NAGASUGITE_IMIWAKARANNODAGA_AITSUHA_WAKARUTO_IIHARU.col2
すっごく長い名前は、ある人のご指示です。短いとよくわからないのだそうです。もちろん気持ちは分かりますが、限度というものがあります。逆に長すぎてイミフです。
ある人:[ システム開発 ] 馬鹿が牛耳る現場で我思う「もう疲れた」と。
細か過ぎる性格に加えて、しつこいのです。あ~、うっとうしい!!その上、バカ!!
PostgreSQL9.5で実験
手持ちの環境だと、PostgreSQL9.5 で簡単に試すことができましたので、その結果をついでに公開です。
130文字くらいまで試しましたが、問題なくSQLは動作しました。これ以上の確認は、あまり意味もないので放置します。
(おわり)