[seasar-dotnet:1728] Oracle でORA-00972: 識別子が長すぎます。の対処方法について

ikutirin [E-MAIL ADDRESS DELETED]
2010年 6月 14日 (月) 17:20:20 JST


DBFlute.NETコミッター様へ
ikutirinと申します。よろしくお願いします。

DBFlute.NET  0.8.9.12で発行されたSQLが
ORA-00972: 識別子が長すぎます。
となります。

発生原因はテーブル名、カラム名が長すぎるという単純なものなのですが、
DBFlute側で発生しないように対応してもらえないでしょうか。

■原因----
25バイトのテーブル名があります。
そのテーブル名を「12345678901234567890TABLE」とし、
「12345678901234567890TABLE_ID」という主キーがあるとします。

ConditionBean#SetupSelectXXX()だけですと、列別名は
「12345678901234567890TABLE_ID_0」というような名前になり、
30バイトを超えることはないのですが、
ConditionBean#SetupSelectXXX().WithXXXX()とした場合は、
「12345678901234567890TABLE_ID_0_3」となり、
30バイトを超えてしまいます。
#26バイトのテーブル名の場合は、ConditionBean#SetupSelectXXX()で
#カラム別名が30バイトを超えます。
----

できることならテーブル名、カラム名の変更をしたくないので、
Oracleの場合で、かつ別名が30バイトを超えるようであれば、
先頭何文字かを採用するなどし、DBFlute側で対応できないでしょうか。

よろしくお願いします。



seasar-dotnet メーリングリストの案内