Oracle Char กับ Java

วันนี้มีเรื่องมาแชร์กันให้ฟังครับ ซึ่งบางท่านอาจเคยได้รับรู้มาแล้ว นั่นคือ ข้อมูลประเภท char กับการค้นหาใน Java การจัดเจ็บข้อมูลในฐานข้อมูลกรณีที่กำหนดประเภทข้อมูลเป็น char และกำนดขนาดของข้อมูลอย่างเช่น char(2) , char(3) หรือ char(n) เวลาจัดเก็บตัวฐานข้อมูลจะ fix ขนาดข้อมูลไว้เลย เช่น กำหนด column type เป็น char(2) แต่บันทึกข้อมูลลงไปแค่ หลักเดียว ระบบของฐานข้อมูลจะเติมช่องว่างให้ข้อมูลเอง เพื่อให้ได้ขนาดข้อมูลเป็น 2 ปัญหาที่ผมเจอก็คือ เวลาเรา query โดยใช้เงื่อนไข column ที่เป็น char มา where กับค่าที่เราต้องการจะหา จะไม่สามารถค้นหาได้ เนื่องจากข้อมูลจริงๆในฐานข้อมูลมีการเติม ช่องว่างให้ด้วย ปัญหานี้เจอกับ Java และ ข้อมูลที่กำหนด char(n) แล้วข้อมูลที่มีอยู่ไม่ได้มีขนาดเป็น n ผมเองก็ไม่ทราบว่าปัญหานี้ จริงๆเป็น bug ของตัว jdbc ของ Java เองหรือไม่ หรือเป็นเฉพาะกับฐานข้อมูลของ Oracle เนื่องจากยังไม่ได้ลองกับฐานข้อมูลประเภทอื่น

หมายเหตุ : ใครลองกับ ฐานข้อมูลอื่นๆแล้วเป็นไงบ้าง ก็มาแชร์กันได้ครับ

  1. No comments yet.

  1. No trackbacks yet.