SQL SEVER7.0です。
レポート出力用に一時的なテーブルを
kingaku decimal(7.2)
で作ります。
その後にInsert文です。
Insert Into TestTable (
kingaku
)
Select kingaku From Furiage
という文を書いて登録しようしたところnumericからnumericのオバーフロー
のエラーがでました。
この時に抽出した金額は4.50です。
Furiageには、
kingaku decimal(8,2)
で登録してあります。
確かに、Furiageの方が項目のサイズは大きいのですが
数値自体は、4.50でしかありません。
なぜ、オーバーフローが起きるのでしょうか?
このAPは、かなり前にリリースしており、
つい最近このエラーが出るようになりました。
とりあえずは、一時的なテーブルのサイズを大きくしました。
それで、大丈夫になりました。
しかし、なぜこの頃になって出るようになったのか?
サイズが4.50程度でオーバーフローになるのでしょうか?
私の環境が SQL Server 2000 だからかも知れませんが、
エラーは発生しませんでした。
参考になるかどうか分かりませんが、
下のクエリを1つずつ実行した場合もエラーは発生しますか?
create table TABLE_7_2 ( FIELD1 decimal(7, 2) )
create table TABLE_8_2 ( FIELD1 decimal(8, 2) )
insert into TABLE_8_2 values (4.50)
insert into TABLE_7_2 select * from TABLE_8_2
返信ありがとうございます。
上記の文でエラーはでませんでした。
それでは、いったい何に原因があるのでしょうか?
vb6を使っています。初めて使いました。
オーバーフローしましたってエラーが出たんですが、理由がわかりません。
そもそもオーバーフローって何が原因で起こるのですか?
オーバーフローしましたって出てきたら何をチェックすればいいですか?
教えてください。お願いします。
超初心者さんへ
Insert文とか出オーバーフローが出たのなら、
Insert Into (
a,b,c,d,e,f
) Values (
1,2,3,4,5
)
だとして、後ろからfと5をInsert文から外して実行してみてください。
それを、先頭までくりあけしたら、どこかでエラーがなくなりますので
無くなったところでオーバーフローしているのでは?
オーバーフローは、char(2)の項目にchar(20)を入れようとしたときとか、
お互いの型が違うときとかにでますよ
ツイート | ![]() |