Cara Membersihkan Karakter Khusus & Tersembunyi Di Sql Server

Dalam proses pengolahan data di Microsoft SQL Server, sering kali kita menemukan karakter tersembunyi yang menyebabkan data terlihat normal tetapi sebenarnya bermasalah.

Masalah ini umum terjadi saat:

  • Import data dari Excel
  • Copy paste dari WhatsApp atau website
  • Integrasi sistem lama (legacy system)
  • Sinkronisasi dengan ERP seperti Microsoft Dynamics AX
  • Field bertipe nvarchar, varchar, atau text

Karakter-karakter tersebut biasanya berupa ASCII control character atau Unicode format character yang tidak terlihat secara visual namun mempengaruhi hasil query, filter, join, dan reporting.

Karakter CHAR (ASCII) yang Sering Digunakan untuk Membersihkan Data

Berikut karakter ASCII yang paling sering menyebabkan masalah:

CHAR() ASCII Nama Keterangan
CHAR(13) 13 Carriage Return (CR) Muncul saat tekan Enter (Windows)
CHAR(10) 10 Line Feed (LF) Pasangan CR
CHAR(9) 9 Tab Sering dari copy Excel
CHAR(160) 160 Non-Breaking Space Spasi dari HTML/Web
CHAR(0) 0 Null Character Dari sistem lama / file tertentu

Menghapus CR dan LF Sekaligus

UPDATE NamaTabel
SET NamaField = REPLACE(REPLACE(NamaField, CHAR(13), ”), CHAR(10), ”)

Menghapus Tab

UPDATE NamaTabel
SET NamaField = REPLACE(NamaField, CHAR(9), ”)

Mengganti Non-Breaking Space

UPDATE NamaTabel
SET NamaField = REPLACE(NamaField, CHAR(160), ‘ ‘)

Karakter Unicode Tersembunyi

Selain ASCII, ada karakter Unicode yang lebih sulit dideteksi karena:

  • Tidak terlihat
  • Tidak dianggap spasi
  • Tidak terhapus dengan TRIM()
  • Bisa menyebabkan WHERE tidak match

Karakter ini termasuk kategori Unicode Format Character.

Daftar Unicode Format Character yang Sering Muncul

Unicode Decimal Nama Dampak
U+202A 8234 Left-To-Right Embedding Data terlihat sama tapi tidak match
U+202C 8236 Pop Directional Formatting Join gagal
U+200E 8206 Left-To-Right Mark Duplikasi tersembunyi
U+200F 8207 Right-To-Left Mark Export CSV bermasalah

Karakter ini sering muncul akibat:

  • Copy dari WhatsApp
  • Copy dari browser
  • Data dari PDF
  • Copy dari email

Biasanya tersimpan di kolom nvarchar.

Cara Mendeteksi Karakter Unicode di SQL Server

Untuk mengecek karakter terakhir:

SELECT UNICODE(RIGHT(NamaField,1))
FROM NamaTabel

Untuk mencari seluruh record yang mengandung U+202A:

SELECT *
FROM NamaTabel
WHERE NamaField LIKE ‘%’ + NCHAR(8234) + ‘%’

Cara Menghapus Unicode Seperti U+202A

Karena ini Unicode, gunakan NCHAR():

UPDATE NamaTabel
SET NamaField = REPLACE(NamaField, NCHAR(8234), ”)

Membersihkan semua karakter format sekaligus:

UPDATE NamaTabel
SET NamaField = REPLACE(
REPLACE(
REPLACE(
REPLACE(NamaField, NCHAR(8234), ”),
NCHAR(8236), ”),
NCHAR(8206), ”),
NCHAR(8207), ”)

Kenapa TRIM() tidak menghapus karakter ini? Karena TRIM() hanya menghapus spasi biasa (CHAR(32)), sedangkan karakter seperti U+202A termasuk kategori “Unicode Category Format”, yaitu bukan spasi dan bukan control character biasa.

Script/Query Pembersihan Universal

Berikut contoh script atau query yang sering digunakan untuk membersihkan kolom teks secara menyeluruh:

UPDATE NamaTabel
SET NamaField = LTRIM(RTRIM(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(NamaField, CHAR(13), ”),
CHAR(10), ”),
CHAR(9), ”),
CHAR(160), ‘ ‘),
NCHAR(8234), ”),
NCHAR(8206), ”)
))

Script ini akan:

  1. Menghapus CR
  2. Menghapus LF
  3. Menghapus Tab
  4. Mengganti NBSP
  5. Menghapus Unicode Format Character
  6. Menghilangkan spasi berlebih

Best Practice Membersihkan Data di SQL Server

  • 1. Gunakan nvarchar untuk data teks
  • 2. Bersihkan data sebelum insert (di level aplikasi)
  • 3. Lakukan validasi saat import CSV / Excel
  • 4. Scan database secara berkala
  • 5. Buat function reusable untuk cleansing

Membersihkan data di SQL Server bukan hanya soal menghapus spasi, tetapi juga memastikan tidak ada ASCII control character dan Unicode format character tersembunyi yang dapat merusak hasil query dan integrasi sistem.

Karakter seperti CHAR(13), CHAR(10), CHAR(9), hingga U+202A sering menjadi penyebab bug yang sulit dideteksi karena tidak terlihat secara visual.

Dengan memahami penggunaan CHAR(), NCHAR(), UNICODE(), dan teknik REPLACE yang tepat, Anda dapat menjaga kualitas dan konsistensi database secara profesional.


Mukena Travel Mini, Wajib Punya!

🌟 Mukena travel ringan dan compact, dilengkapi pouch cantik. Mudah disimpan di tas tanpa makan tempat. Teman setia ibadah saat perjalanan Anda! ✨

~ shopee.co.id ~

Mukena Parasut Ringan & Anti Kusut!

⚡ Mukena parasut berkualitas, ringan, cepat kering, dan tidak mudah kusut. Cocok untuk aktivitas harian maupun traveling. Tampil simpel tapi tetap nyaman saat ibadah! 🌸

~ shopee.co.id ~