- - PR -
OracleのDate型フィールドにDbNull.ValueをInsertすると失敗する。
«前のページへ
1|2|3
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2007-05-12 17:21
僕のリンク先に、
これ以外の.NET Frameworkデータ型からのDbTypeおよびOracleDbTypeの推論はサポートされていないため、DbTypeまたはOracleDbTypeを指定せずにOracleParameterの値としてそれ以外の.NET Frameworkデータ型を使用すると、例外が呼び出されます。 とあります。 で、.NET の DateTime 型は OracleDbType では TimeStamp 型に推論されるため、リンク先のような対応でOKだと思います。 |
|
投稿日時: 2007-05-12 20:30
ひろれいさん
返答ありがとうございます。 リンク先を拝見しました。 回避策はDbTypeを明示的に指定することで対応いたします。 OracleParameterのDbTypeを設定しない場合にDbNull.Valueが登録できるということはDbNull.Valueという「値」から何らかのDbTypeが推論されているということではないのでしょうか? またこの時点で例外が呼び出されない点からも何らかのDbTypeが推論されていると思うのです。 DbNull.Valueで推論された「何らかのDbType」とDbNull.Valueの後に登録するDate型の値から推論されるべきDbTypeが異なる為、エラーが発生するのだと考えたのですが・・・ これ以外の.NET Frameworkデータ型からのDbTypeおよびOracleDbTypeの推論はサポートされていないため、DbTypeまたはOracleDbTypeを指定せずにOracleParameterの値としてそれ以外の.NET Frameworkデータ型を使用すると、例外が呼び出されます。 という事では違うような気がするのです。 |
|
投稿日時: 2007-05-14 13:25
OracleパラメータのValue値が.NetのDateTime型のとき
その値がDbNull.ValueであればOracleのTimeStamp型が推論され DbNull.Value以外(Now等)であればOracleのDate型が推論されるということですね。 返答いただいた皆様 本当にありがとうございました。 |
«前のページへ
1|2|3