[ Oracle ] 「ORA-00972: 識別子が長すぎます。」ってエラーでSQLが動かない

Pocket

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

 

(おわり)

スポンサーリンク


Pocket

Leave a Comment

Your email address will not be published. Required fields are marked *