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:
- Cara Membersihkan Karakter Khusus & Tersembunyi Di Sql Server
- Karakter CHAR (ASCII) yang Sering Digunakan untuk Membersihkan Data
- Karakter Unicode Tersembunyi
- Cara Mendeteksi Karakter Unicode di SQL Server
- Cara Menghapus Unicode Seperti U+202A
- Script/Query Pembersihan Universal
- Best Practice Membersihkan Data di SQL Server
- 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:
- Menghapus CR
- Menghapus LF
- Menghapus Tab
- Mengganti NBSP
- Menghapus Unicode Format Character
- 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 ~
Artikel Terkait
Kisah Inspiratif: Meningkatkan Produktivitas dengan Teknik Pomodoro
Menguasai Materi dengan Cepat: Memahami Teknik Feynman
Panik! Panduan Lengkap Ketika Bitcoin Anjlok Drastis – Apa yang Harus Anda Lakukan Sekarang?
Transformasi Kinerja dan Kesejahteraan Mental: Magisnya Teknik Pomodoro bagi Pelajar dan Mahasiswa
Aplikasi Low-Code: Solusi Cepat untuk Pengembangan Tanpa Ribet
Integrasi Lintas Sistem: Memaksimalkan Bisnis dengan Microsoft Power Apps