• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:#ワークテーブルにinsert時 変換エラー)

ワークテーブルにinsert時 変換エラー

このQ&Aのポイント
  • ワークテーブルにinsertする際に、特定の条件で変換エラーが発生します。具体的には、b列の値が10桁以上の数値の場合にエラーが発生します。
  • 文字列'9999999999'を直接渡す場合は正常にワークテーブルに書き込まれますが、b列の値が変数から取得された場合にエラーが発生します。
  • なぜ10桁以上の数値が変換エラーとなるのか、解決策があれば教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • HowOver
  • ベストアンサー率30% (17/56)
回答No.1

当方SQLServerとかやったことありませんが聞きかじりで > ISNUMERIC(b) ISNUMERIC(cast(b as bigint)) たぶん精度オーバーのように見えます。 詳しくはcastかconvert関数? を見てみると幸せになれるかも。

cinquecent
質問者

お礼

HowOverさん アドバイスありがとうございました。 ISNUMERIC(b) の部分では正常に行われていたのですが、どうやら else 0 の 「0」  が1レコード目に存在する場合、ワークテーブル定義をシステムが勝手にint型と判断してワークテーブルを作成するようです。よって、そのint型に型オーバー値を入れる事になるのでこう言う現象になるです。 ISNUMERIC(cast (b as decimal)) = 1 THEN b ELSE cast(0 as decimal) END AS b とすれば、上手く行きました。 おっしゃる様に型の宣言はきっちり定義した方が、幸せに(^^なれそうですね。 有難う御座いました。

関連するQ&A