- PR -

Oracleのデータ更新について

1
投稿者投稿内容
たま
会議室デビュー日: 2006/12/18
投稿数: 1
投稿日時: 2006-12-18 18:16
初めて投稿いたします。

VB2005でのOracleのデータ更新で質問させていただきます。
oracle及びVB初心者の為かなり悩んでおります。

<前提>
○開発言語: Visual Basic 2005
○DB Oracle9i
○EXCEL EXCEL2000

今、VB2005を使用し、EXCELのセルに記載されたデータを、
ORACLEに登録する処理を行っています。

処理を行うとある端末では問題なく取り込めるのですが、
同じDBに同じDLLで同じEXCELデータを使用しているのにもかかわらず、
別の端末では、
『ORA-01438:指定した精度を超える値が列に指定されています。 』
のエラーがでてしまいます。

エラーのでる端末は別場所にあり、リモートで処理を行っています。
その為、端末個別の設定などは把握できていませんが、
DB・ソース・EXCELデータについては同じ内容を
使用しているのは確認しています。

原因がわからずどうしていいのか悩んでおります。
何か思い当たる点がございましたら、
アドバイスをいただければと思います。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-12-18 19:33
引用:

たまさんの書き込み (2006-12-18 18:16) より:

今、VB2005を使用し、EXCELのセルに記載されたデータを、
ORACLEに登録する処理を行っています。

処理を行うとある端末では問題なく取り込めるのですが、
同じDBに同じDLLで同じEXCELデータを使用しているのにもかかわらず、
別の端末では、
『ORA-01438:指定した精度を超える値が列に指定されています。 』
のエラーがでてしまいます。

エラーのでる端末は別場所にあり、リモートで処理を行っています。
その為、端末個別の設定などは把握できていませんが、
DB・ソース・EXCELデータについては同じ内容を
使用しているのは確認しています。

原因がわからずどうしていいのか悩んでおります。
何か思い当たる点がございましたら、
アドバイスをいただければと思います。


何を使用して、Excel Worksheet からデータを抽出していますか?
これによって、同じデータとして取得できていない可能性は考えられます。

あとは、実際エラーになっているデータがわからない現状では、
「もうちょっと調査してみましょう」 としか言いようがないです。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
Makoto
大ベテラン
会議室デビュー日: 2004/03/31
投稿数: 133
投稿日時: 2006-12-18 19:35
いつもお世話になっております、

これだけの情報ではおそらく『誰も回答しない』
というより『できない』でしょう...

もうちょっと詳細な情報が必要と思います。
(DBのどのようなテーブル、どのような型のフィールドに
 どのようなデータを、どのようクラス/メソッドで、
 どのように入れようとしているのか など...)

例で言うと下みたいな感じで説明ないと回答こないと思います。
(これもかなり大雑把ですが...)

 oo4oのODynasetクラスで、char 10バイトのエリアに
 "abcdefghijk"をupdate文で打っている
  ↑
  これは11バイトでエラーです。

ところで、下記エラーでExcelということなので
まさかExcelのシート上のデータ型設定が、
ある端末では『文字列』で、
ある端末では『時間』とかっていう違いではないですよね?

 『ORA-01438:指定した精度を超える値が列に指定されています。 』

まず、Excelから読み込んだデータが両端末で同じ値か確認してみてはどうでしょう?
または、時間型だとミリ秒まで精度があるとかないとか確認してみてはどうでしょう?

質問がなぞのベールに包まれているので、
これ以上は回答できないのです...
ご理解いただけます?

以上。
ひろ@ya
大ベテラン
会議室デビュー日: 2006/02/23
投稿数: 168
投稿日時: 2006-12-19 19:12
どこかで暗黙の型変換が行われている可能性はありませんか?
特に文字列と他の型の間の変換では、書式を明示して変換しないと
予期せぬトラブルの要因になります。

# 物によってはコントロールパネルの設定に従う事になっていたりしますよ
1

スキルアップ/キャリアアップ(JOB@IT)