การแก้ Oracle ให้อ่านภาษาไทยได้นั้น จะแบ่งออกเป็น 2 ส่วน คือ
1. ฝั่ง client
2. ฝั่ง server
โดยการที่จะทำให้อ่านภาษาไทยได้ต้อง set character set ทั้งที่ client และ server ประกอบกันทั้งคู่
วิธีการ set ทางฝั่ง client มีดังนี้
1. ทำการแก้ไขใน reg edit ที่ My Computer\HKEY_LOCAL_MACHINES\SOFTWARE\ORACLE\KEY_OraDb10g_home1 โดยแก้ NLS_LANG ให้เป็น THAI_AMERICA.TH8TISASCII
โดย THAI_AMERICA เนี่ย ตัวหน้า คือ ภาษาของพวกข้อมูลที่แสดง ส่วนตัวหลังจะเป็นภาษาของระบบ เช่น พวก error message
จบละ
ส่วนวิธีการ set ทางฝั่ง server มีดังนี้
SELECT * FROM NLS_DATABASE_PARAMETERS;
จะเห็นว่ามี NLS_CHARACTERSET และ NLS_NCHAR_CHARACTERSET ซึ่งทั้ง 2 ค่าต้องเป็นอย่างในรูป (ุTH8TISASCII และ AL16UTF16 ตามลำดับ) ซึ่งถ้าไม่ใช่ก็ต้อง set ใหม่
2. ทำการ set ค่าโดยเข้าใช้ SQLPlus ผ่าน command line ดังนี้
C:\> sqlplus dbusername/dbpassword@dbserviceโดยตัว service นี้ดูจากในไฟล์ TNSNAME.ORA
2.2 เข้า mode sysdba
SQL> connect sys/syspassword@dbservice as sysdba;ถ้าเข้าเรียบร้อยแล้ว จะขึ้นว่า Connected.
2.3 รันคำสั่งแก้ไข character set ดังนี้
update props$
set value$='TH8TISASCII'
where name='NLS_CHARACTERSET';แล้วมันจะขึ้นว่า 1 row update ก็ commit ซะ
3. restart oracle service แล้วก็จะใช้ได้แล้ว
4. ส่วน NLS_NCHAR_CHARACTERSET ก็ทำเหมือนกัน แค่เปลี่ยน sql สุดท้าย
จบฮะ
ปล. Oracle 10g
reference: http://www.narisa.com/forums/index.php?showtopic=14704
ไม่มีความคิดเห็น:
แสดงความคิดเห็น