サーバー環境:
OS:Windows Server 2012 R2
Oracle Database Standard Edition One 11g
クライアント環境:
OS:Windows 7 Professional SP1 32bit
Oracle Client 11.2.0.4
Microsoft Access 2013
ODBC
Access のアプリケーショより insert 文を発行した際、ORA-01461 が表示される。
テーブルの名称項目へ次のそれぞれの値をセットしてみた。
パターン:1
あいうえおかきくけこさしすせそ
パターン:2
あいうえおかきくけこさしすせ
パターン:3
あいうえおかきくけこさしす
パターン:4
あいうえおかきくけこさし
パターン:5
あいうえおかきくけこさ
パターン:6
あいうえおかきくけこ
パターン1から5の文字列ではエラーとなり、6.はエラーとなりませんでした。
但し、ここで SqlPlus から直接サーバーへ SQL 文を発行した場合、エラーになりませんでした。
と言うことは、ODBC(Oracl社) ドライバーが怪しいです。
オラクル社より下記のバグ情報を発見しました。
============================================================
Bug:18232462
GETTING ORA-01461 WHILE INSERTING INTO NVARCHAR2 COLUMNS WITH
CHINESE LANGUAGE
============================================================
11.2.0.4で発生する製品不具合(BUG:18232462)に該当していました。
本修正を含んだパッチをClient側に適用することで回避可能です。
## 事象詳細
BUG:18232462はODBC経由の処理で、カラム名の一部重複がある場合に
ORA-1461が発生する不具合です。今回のケースとは状況も異なるため
当初該当しないと考えておりましたが、弊社環境のテストの結果
今回の問題にもBUG:18232462の修正を適用することで事象が解消することが
確認出来ました。
## 対処策
BUG:18232462を含むパッチを適用することで問題を回避することが出来ました。