Ubah WHERE . Anda kondisi seperti ini:
WHERE mycolumn LIKE '%\_%' ESCAPE '\'
Ini adalah salah satu cara Oracle mendukung karakter pelarian. Di sini Anda mendefinisikan karakter escape dengan escape kata kunci. Untuk detailnya, lihat tautan ini di Oracle Docs.
'_' dan '%' adalah karakter pengganti dalam LIKE pernyataan yang dioperasikan dalam SQL.
_ karakter mencari keberadaan (apa saja) satu karakter tunggal. Jika Anda mencari berdasarkan columnName LIKE '_abc' , itu akan memberi Anda hasil dengan baris yang memiliki 'aabc' , 'xabc' , '1abc' , '#abc' tapi BUKAN 'abc' , 'abcc' , 'xabcd' dan seterusnya.
'%' karakter digunakan untuk mencocokkan 0 atau lebih jumlah karakter. Artinya, jika Anda mencari berdasarkan columnName LIKE '%abc' , itu akan memberi Anda hasil dengan memiliki 'abc' , 'aabc' , 'xyzabc' dan seterusnya, tetapi tidak ada 'xyzabcd' , 'xabcdd' dan string lainnya yang tidak diakhiri dengan 'abc' .
Dalam kasus Anda, Anda telah mencari dengan '%_%' . Ini akan memberikan semua baris dengan kolom itu memiliki satu atau lebih karakter, yang berarti karakter apa pun, sebagai nilainya. Inilah mengapa Anda mendapatkan semua baris meskipun tidak ada _ di nilai kolom Anda.