[seasar-dotnet:653] Re: ORACLEのDate型のWHERE句について

Ryo Miyagi [E-MAIL ADDRESS DELETED]
2007年 11月 16日 (金) 13:39:59 JST


清末さん

宮城です。

頂いた情報を確認したところ、特におかしいところは無いと思います。
今、手元に検証環境が無いため、週末に自宅環境で再現するか調査してみます。

あと、Oracle側に実際に発行されているSQL文を確認していただくと
S2Dao.NET側の問題なのかそうでないか切り分けやすいです。

ODP.NETのデバッグ・トレース機能を使えば
発行したSQL文を確認できると思います。
使い方は、http://otndnld.oracle.co.jp/document/products/oracle10g/102/windows/B31247-01.zip
に含まれるfeatDebug.htmを参照してください。

以上、宜しくお願いします

07/11/16 に KIYOSUE Minoru<[E-MAIL ADDRESS DELETED]> さんは書きました:
> 宮城 様 ご回答ありがとうございます。
>
> ログ表示と発行しているSQLが異なる件、承知いたしました。
>
>
> > 原因を考えてみますので
> > お手数ですが、下記の情報を教えていただけないでしょうか。
>
> > ・Oracleのバージョン
>
> Oracle Database 10g Enterprise Edition Release 10.2.0.3
>
> > ・Oracle Data Provider for .NET のバージョン
>
> ODP.net 10.2.0.3
>
> > ・S2Dao.netのバージョン
>
> 1.3.2
>
> > ・OracleのDATE型カラムの定義
> > (例: TBCOL2   DATE NULL)
>
> TBCOL2 DATE NOT NULL
>
> ちなみに。TBCOL1、TBCOL2ともPrimaryKey項目です
>
> > ・OracleのDATE型カラムに対する.NETのプロパティの定義
> > (例:private System.DateTime tbcol2)
>
> dtmTbcol2  As Nullable(Of DateTime)
>
> 以上の様になっております。
>
>
> よろしくお願いいたします。
>
>
> ----- Original Message -----
> From: "Ryo Miyagi" <[E-MAIL ADDRESS DELETED]>
> To: <[E-MAIL ADDRESS DELETED]>
> Sent: Friday, November 16, 2007 9:48 AM
> Subject: [seasar-dotnet:651] Re:ORACLEのDate型のWHERE句について
>
>
> > 清末さん
> >
> > 宮城です。
> >
> > 表題の件ですが、
> > ログに出力しているSQLと
> > 実際にOracleに発行しているSQLは違います。
> >
> > ログに出力しているSQLは、ログ表示用に日付文字列をフォーマットしており、
> > 日付文字列のフォーマットは、
> > Seasar.Extenstion.ADO.Impl.BasicCommandFactoryクラスの
> > SqlLogDateFormatプロパティ及びSqlLogDateTimeFormatプロパティで
> > 変更することが可能です。
> >
> > Oracleに発行しているSQLは、
> > バインド変数を使用してDate型カラムの値を設定しています。
> >
> > 従って、Date型カラムの値が一致すればデータの取得が可能ですので
> > DBのカラムをTO_CHARする必要はありません。
> > 別の要因で取得できていないかと思います。
> >
> > 原因を考えてみますので
> > お手数ですが、下記の情報を教えていただけないでしょうか。
> > ・Oracleのバージョン
> > ・Oracle Data Provider for .NET のバージョン
> > ・S2Dao.netのバージョン
> > ・OracleのDATE型カラムの定義
> > (例: TBCOL2   DATE NULL)
> > ・OracleのDATE型カラムに対する.NETのプロパティの定義
> > (例:private System.DateTime tbcol2)
> >
> > 以上、宜しくお願いします。
> >
> > 07/11/15 に KIYOSUE Minoru<[E-MAIL ADDRESS DELETED]> さんは書きました:
> > > お世話になっております、清末です。
> > >
> > > S2を使用した開発が、定着しつつあり、自分としては大変嬉しく思っている今日
>> > > す。
> > >
> > > さて、ORACLEを使用したプロジェクトでS2を使用する事となり、現在コーディン
> グを
> > > 開始しておりますが、Oracle の Date型カラムがWHERE句に含まれる自動生成SQL
> > > で質問があります。
> > >
> > > ログを見ると
> > >
> > > SELECT
> > >    ・・・・・・・・・・
> > > FROM
> > >    TABLEA
> > > WHERE
> > >    TBCOL1  = 'XXXXXXXXX'  AND
> > >    TBCOL2  = '2007-11-15 12.17.20'
> > >
> > > (TBCOL2がDate型のカラムです)
> > >
> > > となっており、接続には、ODP.netを使用いたしております。
> > >
> > > 該当のRowが存在していますが、結果は、Nothingで戻ってきます。
> > >
> > > Oracleの場合、SQL上リテラル文字側をTO_DATEするか、DBのカラムをTO_CHARす
>> > > 必要があるのではないかと思うのですが、S2Dao.net(または、ODP.netの仕様?)
> では
> > > 上記のSQLで取得可能なのでしょうか?
> > >
> > > ご多忙中大変恐縮ですが、よろしくお願い申し上げます。
> > >
> > > _______________________________________________
> > > seasar-dotnet mailing list
> > > [E-MAIL ADDRESS DELETED]
> > > https://ml.seasar.org/mailman/listinfo/seasar-dotnet
> > >
> >
> >
> > --
> > Ryo Miyagi
> > _______________________________________________
> > 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
>


-- 
Ryo Miyagi


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