Unicode เป็นหนึ่งในมาตรฐานการเข้ารหัสที่มีอิทธิพลและทรงพลังที่สุดในโลกแห่งการพัฒนา Unicode แสดงอักขระจากเกือบทุกภาษาโดยการเข้ารหัสอักขระในรหัสจำนวนเต็มระหว่าง 0 ถึง 0x10ffff
เนื่องจากความเก่งกาจของฐานข้อมูล บางครั้งคุณจะพบว่าตัวเองกำลังแปลงสตริงเป็นตัวแทน Unicode
ในบทช่วยสอนนี้ คุณจะได้เรียนรู้วิธีใช้ฟังก์ชันการสลายตัว () ของฐานข้อมูล Oracle เพื่อแปลงค่าที่กำหนดให้เป็นตัวแทน Unicode
ไวยากรณ์ของฟังก์ชัน Oracle Decompose
ไวยากรณ์ของฟังก์ชันมีดังต่อไปนี้:
ย่อยสลาย ( สตริง [, { 'CANONICAL' | 'ความเข้ากันได้' } ] )
ฟังก์ชันยอมรับสองอาร์กิวเมนต์:
- สตริง – นี่แสดงถึงสตริงที่จะแปลงเป็นองค์ประกอบ Unicode ค่าของพารามิเตอร์นี้สามารถเป็น CHAR, VARCHAR, NCHAR, NVARCHAR2, CLOB และ NCLOB
- ยอมรับ – การตั้งค่าเป็น Canonical ช่วยให้ฟังก์ชันดำเนินการแยกส่วนตามรูปแบบบัญญัติ ซึ่งช่วยให้จัดองค์ประกอบใหม่เป็นสตริงเดิมได้ หากไม่ได้ระบุ ฟังก์ชันจะใช้พารามิเตอร์นี้เป็นค่าเริ่มต้น
- ความเข้ากันได้ – หากตั้งค่าเป็นความเข้ากันได้ ฟังก์ชันจะดำเนินการแยกส่วนในโหมดความเข้ากันได้ โหมดนี้ไม่อนุญาตให้จัดองค์ประกอบใหม่ให้กับสตริงเดิม ใช้ตัวเลือกนี้เมื่อแบ่งตัวอักษรคะตะคะนะแบบครึ่งความกว้างและแบบเต็มความกว้าง
โปรดทราบว่าประเภท CLOB และ NCLOB ได้รับการสนับสนุนผ่านการแปลงอย่างชัดเจน
ตัวอย่างการใช้งานฟังก์ชั่น
ตัวอย่างต่อไปนี้สาธิตวิธีการใช้ฟังก์ชันการสลายตัว () ของฐานข้อมูล Oracle
ตัวอย่างที่ 1 – การใช้งานฟังก์ชันพื้นฐาน
รหัสอย่างง่ายต่อไปนี้แสดงวิธีการใช้ฟังก์ชันการย่อยสลายเพื่อแยกย่อยสตริงเป็นตัวแทน Unicode
เลือกการสลายตัว ('สวัสดี') เป็นเอาต์พุตจากคู่;การรันโค้ดด้านบนควรส่งคืนสตริงเอาต์พุตเป็น:
ตัวอย่างที่ 2 – รับรหัสแอสกี
ในการดึงค่าจำนวนเต็ม Unicode เราสามารถส่งสตริงผลลัพธ์ไปยังฟังก์ชัน asciistr ดังตัวอย่างด้านล่าง:
เลือก asciistr(decompose('你好')) เป็นเอาต์พุตจาก dual;เอาท์พุต:
ตัวอย่างที่ 3 – การใช้ฟังก์ชันกับอักขระที่ไม่ใช่ Unicode
หากเราจัดเตรียมฟังก์ชันด้วยอักขระที่ไม่ใช่ Unicode ฟังก์ชันจะส่งคืนสตริงอินพุตโดยไม่มีการแก้ไขใดๆ
ตัวอย่างการสาธิตดังที่แสดง:
เลือก decompose('l') เป็นเอาต์พุตจาก dual;ผลลัพธ์:
กรณีเดียวกันนี้มีผลแม้ในขณะที่ใช้ฟังก์ชัน asciistr
เลือก asciistr(('l')) เป็นเอาต์พุตจากคู่;เอาท์พุต:
ตัวอย่างที่ 4 – การใช้ฟังก์ชันกับอาร์กิวเมนต์ NULL
ฟังก์ชันจะส่งกลับค่า NULL หากค่าที่ป้อนเป็น NULL
ตัวอย่าง:
เลือก (NULL) เป็นเอาต์พุตจากคู่;เอาท์พุต:
ตัวอย่างที่ 5 – การเรียกใช้ฟังก์ชันโดยขาดพารามิเตอร์
จำเป็นต้องมีพารามิเตอร์สตริงในฟังก์ชัน ดังนั้นหากเราส่งค่าสตริงไม่ผ่าน ฟังก์ชันจะส่งกลับข้อผิดพลาดดังรูป:
เลือก () เป็นเอาต์พุตจากคู่;ผลลัพธ์:
ข้อผิดพลาด SQL: ORA-00938: อาร์กิวเมนต์ไม่เพียงพอสำหรับฟังก์ชัน00938. 00000 - 'อาร์กิวเมนต์ไม่เพียงพอสำหรับฟังก์ชัน'
บทสรุป
ในบทแนะนำสอนการใช้งานนี้ คุณได้เรียนรู้วิธีใช้ฟังก์ชันdecompose() ของ Oracle เพื่อแปลงสตริงเป็นตัวแทน Unicode