mokky14's IT diary

IT関係の仕事メモ、勉強会の感想など書いてます。

PCC-S-02322エラー

SolarisからLinuxへのC言語のソースをポーティングする作業してたら、見慣れないエラーに当たったので、その対処を。

PCC-S-02322, found undefined identifier

元々Solaris上でコンパイル出来てたソースなので、「未定義の識別子」なんてあるはずない。
実際ソースも何の問題もなさそう。
ググってみたら、ホスト変数をDECLARE SECTION内で定義しろとかいうのが出てきたけど、これは当てはまらない。元々コンパイル出来てたソースだし。

他に何か変更になってる条件ないか考えてたら、Linuxポーティングのため、文字コードEUCからUTF-8に変更したことが原因じゃないかと思って調べたらビンゴ。NLS_LANGをUTF-8の変数に変更する必要があったらしい。
NLS_LANGの設定を以下のようにしてコンパイルしたら問題なくコンパイル通った。

export NLS_LANG=Japanese_Japan.AL32UTF8

こんなんで1時間も無駄にしてしまった。
Oracleのエラーは何でこんなに分かりづらいんだ。。