[Seasar-user:18351] Re: [DBFlute]Oracle/NVARCHAR2 カラムの DBMeta 情報取得
kubo
[E-MAIL ADDRESS DELETED]
2009年 8月 21日 (金) 01:35:45 JST
久保(jflute)です。
hattiさん、ご確認ありがとうございます。
すいません、JDBCドライバについては移行時の注意を
提示するのを忘れてしまいました。申し訳ございません。
http://dbflute.sandbox.seasar.org/contents/migration/migrate-0953to0954.html
カラムサイズはJDBCドライバから取得される値そのままです。
なので、OracleのJDBCドライバがそのように戻してくるという感じです。
何が正解かはちょっと自分も分かりかねますので、
色々検証するようにして下さい(もしくはサポートに聞くとか)。
他の型でも似たような問題があるかもしれませんので。
月並みのことですが念のため書いておきます。
Meta情報のカラムサイズをバリデーションに利用する際は、
運用中にDBだけサイズを変更するとかは必ず避けて下さい。
運用中に再自動生成なし(再コンパイルなし)で変更したいという
要件がある場合は、DBFluteのMeta情報はタイプセーフなカラム名の
指定に利用するだけで、カラムサイズは動的に取得するようにして下さい。
2009/8/21 HATTI <[E-MAIL ADDRESS DELETED]>:
> お世話になっております。
> hatti です。
>
> すばやい対応ありがとうございます。とても助かります。
> 早速DBFlute-0.9.5.4-SNAPSHOTを入れて試してみました。
>
> jdbcタスクを実行するのに失敗するので、なぜだろう?と思ったら、
> mydbflute/dbflute-0.9.5.4-SNAPSHOT/lib/forExecute に
> ojdbc5.jar が入っていなくて落ちていたみたいです。
>
> 0.9.5.3 からコピーして実行したらうまくできました。
>
> そして肝心の実行結果なのですが、
> NVARCHAR2(256) で宣言しているカラムのDBMeta情報が、
> cci("LOGIN_ID", null, "loginId", String.class, false, false, 512, 0)
> のように、宣言したサイズの倍になっています。
> これはオラクルから取得できる情報がこのようになっているのでしょうかね。
>
> 256で取得するのが無理であれば、2で割って使用するのが良いのかな、、、
> (単純に2で割っていいのかまだわからないですが)
>
> 以上、よろしくお願いいたします。
>
> 2009/08/20 23:43 に kubo<[E-MAIL ADDRESS DELETED]> さんは書きました:
>> 久保(jflute)です。
>>
>> hattiさん、こんばんは
>>
>> フィードバックありがとうございます。
>> これはDBFluteのバグでした。
>> (Nxxx系は特別な扱いになっている影響で)
>>
>> DBFlute-0.9.5.4-SNAPSHOTを公開しましたので、
>> お手数ですがご確認頂けますでしょうか?
>> (EMechaからSNAPSHOTとしてDownload可能です)
>>
>> DBFluteランタイムは「DBFlute-0.9.5.3」のままでOKです。
>>
>> 2009/8/20 HATTI <[E-MAIL ADDRESS DELETED]>:
>>> お世話になっております。
>>> hatti です。
>>>
>>> DBFlute9.5.3 / OracleXE(10g) を使用しております。
>>> 特に急ぎの質問ではないため、時間のあるときに回答いただけるとありがたいです。
>>>
>>> ある NVARCHAR2 型のカラムの DBMeta 情報から、
>>> そのカラムのサイズ(dbm.columnLoginId().getColumnSize()) を取得しようとしたのですが、
>>> null が返され、取得できません。
>>>
>>> NUMBER 型カラムの場合は、size が正常に定義/取得できます。
>>>
>>> NVARCHAR2 などのカラム情報の生成は難しいのでしょうか。
>>> このカラムサイズ定数を用いて、画面の maxlength / validate などを行おうと思っています。
>>>
>>> 以上、よろしくお願いいたします。
>>> _______________________________________________
>>> Seasar-user mailing list
>>> [E-MAIL ADDRESS DELETED]
>>> https://ml.seasar.org/mailman/listinfo/seasar-user
>>>
>> _______________________________________________
>> Seasar-user mailing list
>> [E-MAIL ADDRESS DELETED]
>> https://ml.seasar.org/mailman/listinfo/seasar-user
>>
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>
Seasar-user メーリングリストの案内