Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Perbaiki Msg 8114 "Kesalahan mengonversi tipe data varchar ke numerik" di SQL Server

Jika Anda mendapatkan kesalahan SQL Server Msg 8114 yang berbunyi seperti Kesalahan saat mengubah tipe data varchar menjadi numerik , mungkin karena Anda mencoba melakukan konversi tipe data yang gagal karena nilainya tidak dapat dikonversi ke tipe tujuan.

Itu bukan karena Anda tidak dapat mengonversi tipe itu ke tipe baru. Itu karena nilai itu sendiri.

Contoh Kesalahan

Berikut contoh kode yang menghasilkan kesalahan:

SELECT CAST('Ten' AS DECIMAL(5,2));

Hasil:

Msg 8114, Level 16, State 5, Line 1
Error converting data type varchar to numeric.

Kesalahan ini terjadi karena SQL Server tidak dapat mengonversi nilai string ke desimal.

Solusi 1

Untuk memperbaikinya, Anda harus memastikan bahwa Anda memberikan nilai yang dapat dikonversi oleh SQL Server.

Jika Anda melewati kolom, periksa apakah Anda memiliki kolom yang benar. Sama jika Anda meneruskan variabel – periksa apakah itu variabel yang benar.

Ingatlah bahwa ini mungkin tidak terjadi dalam semua kasus mencoba mengonversi string ke desimal, karena beberapa nilai string dapat dikonversi.

Misalnya, konversi berikut berhasil:

SELECT CAST('10' AS DECIMAL(5,2));

Hasil:

10.00

Di sini, SQL Server berhasil menemukan 10 adalah angka, dan oleh karena itu konversi berhasil.

Solusi 2

Jika Anda tidak keberatan konversi gagal, tetapi Anda hanya tidak ingin itu mengembalikan kesalahan, coba TRY_CAST() atau TRY_CONVERT() fungsi.

Alih-alih mengembalikan kesalahan, fungsi ini mengembalikan NULL ketika nilainya tidak dapat dikonversi.

Contoh:

SELECT TRY_CAST('Ten' AS DECIMAL(5,2));

Hasil:

NULL

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ROUND() Contoh di SQL Server

  2. Mengapa nama tabel di SQL Server dimulai dengan dbo?

  3. Konversi Tanggal ke Zona Waktu Lain di SQL Server

  4. Cara Mencadangkan Database SQL Server menggunakan T-SQL

  5. Impor SQL Massal dari CSV