- - PR -
DataSetを使用しての更新時のORA-01438調査方法
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2008-07-17 22:33
いつもお世話になります。
odp.netでDataSetを使用しての更新時に 「ORA-01438 この列に許容される指定精度より大きな値です。」 のメッセージが出ることがありますが、このエラーが表示されるタイミングが最後の 「adpT1.Update(dsListT1.Tables("T_HOGE"))」 なためにどのカラムが精度があふれているのかがわかりません。 原因を調査する方法はカラム1つ1つをコメントアウトして再実行して このエラーが出なくなったらそのカラムが原因、 という方法しかないのでしょうか? テーブルが小さければいいのですが、カラムが100近いテーブルで これが出ると泣きそうになってしまいます(涙)。 もっと簡単にどのカラムでオーバフローしているのかがわかる方法は ありますでしょうか? どなたかご教示願えませんでしょうか。 よろしくお願いいたします。 |
|
投稿日時: 2008-07-19 11:36
私も余り詳しくないけど・・・
SQLERRMを参照するとフィールド名とか入っていませんか? V$SQLTEXTLなど直前に実行していたSQL文を格納しているテーブルに、原因SQL文が格納されていたりしませんか? Oracleサーバ側でSQLトレースを有効にするといった方法はとれないのですか? #Oracleの運用に詳しい人に、ログ取れないか聞いてみるのが早い気がする。 |
|
投稿日時: 2008-07-21 22:14
甕星様
お返事ありがとうございました。 少なくとも「SQLERRM」にはフィールド名は出ませんが、 >V$SQLTEXTLなど直前に実行していたSQL文を格納しているテーブルに、原因SQL文が格納されていたりしませんか? >Oracleサーバ側でSQLトレースを有効にするといった方法はとれないのですか? の方法は有効ですね。見落としておりました。 今後使わせていただきます。ありがとうございました。 |
1