Di tautan yang Anda berikan, dengan jelas menyatakan bahwa untuk bidang TEXT, "Panjang maksimum efektif kurang jika nilainya berisi karakter multibyte. "
UTF-8 adalah Unicode Charset, dan default untuk database Anda. Ini menggunakan representasi 1-byte untuk 128 karakter pertama, yang cocok dengan set ASCII, dan representasi 4-byte untuk karakter lainnya.
Ini berarti bahwa kolom TEXT dapat menyimpan lebih banyak atau lebih sedikit karakter tergantung pada apakah karakter tersebut ASCII atau bukan.
Sekarang, masalah Anda muncul ketika driver MySQL tidak menangani ini dengan benar, dan akan menganggap semua karakter UTF-8 memiliki lebar 4 byte , dan akan membagi Panjang Kolom dengan 4 byte dan meneruskannya ke DataTable sebagai Panjang Bidang yang sebenarnya. Ini berarti bahwa secara teknis dimungkinkan untuk memiliki beberapa teks dalam database Anda yang tidak sesuai dengan DataTable, seperti yang terjadi pada kasus Anda.
Solusi (atau solusi dalam kasus ini) untuk masalah Anda persis seperti yang telah Anda lakukan untuk saat ini, yaitu mengubah kolom menjadi tipe yang dapat berisi lebih banyak karakter, seperti MEDIUMTEXT atau LONGTEXT.
Dugaan saya adalah keputusan ini dibuat untuk menyederhanakan implementasi Driver MySQL, tetapi saya akan mempertimbangkan untuk mengirimkan laporan bug ke Oracle.