ここでは、最近遭遇した次の 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は動作しました。これ以上の確認は、あまり意味もないので放置します。
(おわり)