次の例外が発生しているデータベースにクエリを実行しています。
varchar 値 'B6UJ978023EC' をデータ型 int に変換するときに変換に失敗しました
どうすれば修正できますか?
次の例外が発生しているデータベースにクエリを実行しています。
varchar 値 'B6UJ978023EC' をデータ型 int に変換するときに変換に失敗しました
どうすれば修正できますか?
私の推測では、クエリは次のようになります。
select * from mytable where SomeField = 'B6UJ978023EC'
その場合は、データ型SomeField
として宣言されておりINT
、Sql Server は動作しない に変換しようとして'B6UJ978023EC'
いINT
ます。
挿入/更新を行おうとしている可能性があるため、SomeField が INT の場合もこれは機能しません。
update mytable
set SomeField = 'B6UJ978023EC'
where something = something
insert mytable (field1, field2, SomeField)
values(123, 'abc', 'B6UJ978023EC')
同じ結果、varchar 値 'B6UJ978023EC' をデータ型 int に変換するときに変換に失敗しました
この場合、列のデータ型を変更するか、変数の値を変更してください。
更新:
列のデータ型(N)VARCHAR
に実数が含まれている場合は、探している数値を一重引用符で囲むだけです。
-- works
select * from mytable where SomeField = '123456'
-- doesn't work - same error
select * from mytable where SomeField = 123456
これを試して:
エラーは、文字値を整数値に変換しようとしているためです。整数値のみを選択するように、以下の条件をクエリに追加するだけです
where ISNUMERIC(col+ '.0e0')=1