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

kubo [E-MAIL ADDRESS DELETED]
2010年 6月 15日 (火) 17:46:26 JST


久保(jflute)です。

ikutirinさん、ご確認ありがとうございました。

2010/6/15 ikutirin <[E-MAIL ADDRESS DELETED]>:
> ikutirinです。
> 久保(jflute)さん、早速の対応ありがとうございました。
> こちらでも動作を確認し、問題ありませんでした。
>
> kubo <[E-MAIL ADDRESS DELETED]> wrote:
>
>> 久保(jflute)です。
>>
> こんにちは、ikutirinさん
>> この件は、まさしく
>> http://dbflute.net.sandbox.seasar.org/ja/introduction/index.html#notimplfunc
>>>> "Oracleのselect句の30文字問題の回避"
>> に相当するものです(Java版では既にサポート済み)。
>> 単純に機能がないのはまだしも、この手の設計に
>> 影響するものは、やはりしっかりやっておかない
>> といけないですね。
>> DBFlute.NET-0.8.9.18-00-SNAPSHOT をお試し下さい。
>> http://dbflute.net.sandbox.seasar.org/ja/environment/newest.html#snapshot
>>
> dbflute-asp.net-example (ASP.NET + DBFlute.NET + Oracle)
>> の VendorNameTest で長いカラム名を試して動作しています。
>> https://www.seasar.org/svn/sandbox/dbflute.net/trunk/dfnet-asp.net-example/source/DfExampleTest/DBFlute/Various/VendorNameTest.cs
>>
> 2010/6/14 ikutirin <[E-MAIL ADDRESS DELETED]>:
>> > 追記および修正です。
>> >
>> > 現象が起きているDBFlute.NETのバージョンは、
>> > 0.8.9.17の間違いです。失礼しました。
>> >
>> > また、同じことをHnossさんが分かりやすく書いてくれていました。
>> > http://d.hatena.ne.jp/Hnoss/20081120/1227192898
>> >
>> > Hnossさんが言うように、Oracleを利用していて
>> > ORA-00972: 識別子が長すぎます。が出た場合は
>> > カラム名を見直さなければいけない。
>> > あらかじめORA-00972が発生しないように、カラム名は20バイト程度で抑えておく。
>> >
>> > と、いうのが現時点でのDBFlute利用時の制限になってしまいますか。。。
>> > #そこをなんとか。。。
>> >
>> >
>> > ikutirin <[E-MAIL ADDRESS DELETED]> wrote:
>> >
>> >> 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 mailing list
>> > [E-MAIL ADDRESS DELETED]
>> > https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>> >
>> _______________________________________________
>> seasar-dotnet mailing list
>> [E-MAIL ADDRESS DELETED]
>> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>
> _______________________________________________
> seasar-dotnet mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>


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