Oracle NVARCHAR2(1600)で1600文字入らない件
NVARCHAR2のカラムを大きくして大量文字を入力しようとすると以下のエラーが発生して入力できない。
エラー:: ORA-01461 : LONG値はLONG列にのみバインドできます。
ググってみたところ、
http://www.projectgroup.info/tips/Oracle/errorcode/ORA01461.html
のサイトが出てきた。
とのことでバージョンを確認したところ、こちらの環境はOracle Clientは11.2.0.4でした。残念。で、エラーメッセージが崩壊しているのは置いておいて、どこまで入るのだろうと根気強く入力値を変化した結果、1333文字までしか入らないことがわかった。
NLS_LANG=JAPANESE_JAPAN.JA16SJISTILDE
と指定しているのでShift_JIS(2byte)なんだけど、1333×3=3999つまり4000byte境界があるっぽい(内部で3byteで計算してるのか?)。
なんだかとても納得行かない仕様。
ちなみに確認したOracleサーバ側のバージョンは11.2。