Oracle SQL วิธี query field CLOB แปลงเป็น String  สร้างคำถาม

 4,829 view  หมวดหมู่ : สำหรับโปรแกรมเมอร์  วันที่สร้าง : 07/09/2018

Oracle SQL วิธี query field CLOB แปลงเป็น String

หลายท่านคงเคยเจอปัญหาข้อจำกัดของ String ใน Oracle ที่ใช้ได้ไม่เกิน 4,000 ตัวอักษร
ถ้าเกินนั้นจะเจอปัญหาทั้งขา insert และ ขา Query เนื่องด้วย Varchar2 เอาไม่อยู่
ต้องเปลียนไปใช้ Field ตระกูล CLOB , BLOB
การแก้ปัญหาขาเอาข้อมูลเก็บนั้นไม่ยาก
แค่ create table แล้ว สร้าง field datatype CLOB แทน Varchar2
จากนั้นก็จับยัด String อ้วนๆ ลงไปได้เลย

แต่ !!!!!!!!

มันดันไปเจอปัญหาตอน Query เพื่อแปลงออกมาเป็น String อันนี้ก็ได้ไม่เกิน 4,000 เช่นกัน T_T
ถ้าข้อมูลไม่เกิน 4,000 ให้ใช้ท่านี้นะ ง่ายๆ


select dbms_lob.substr(f_clop) nfield from test_clop

แต่หากเกิน 4,000 ทำแค่นี้ท่านจะพบ error ว่า String buffer to small
อารมณ์ประมาณว่ามันเกิน 4,000 นั่นแหละ

ทางแก้ก็มีหลายท่านแนะนำว่าให้หั่นออกมาเป็นหลาย Field

select
dbms_lob.substr(f_clop,4000,1) f_1,
dbms_lob.substr(f_clop,4000,4000) f_2,
dbms_lob.substr(f_clop,4000,8000) f_3
from test_clop where code_id=1

แต่ดูแล้วมันก็ดูจะถึกๆ ไปนะแต่ก็ถ้าใครมีแนวทางที่ดีกว่านี้ก็ช่วยแนะนำหน่อยนะครับ
แบบนี้มันก็ยากเพราะไม่รู้ว่าความกว้างมันมากน้อยแค่ใหนอ่ะนะ
ปล. การ sub string โดยใช้ dbms.lob.sugstr มันก็จะแปลกๆ หน่อยอ่ะน
ผมลองใส่ข้อมูลลงใน CLOB เป็น 123456789 แล้วลอง sub ตามนี้

select
dbms_lob.substr(f_clop,3,1) f_1,
dbms_lob.substr(f_clop,3,4) f_2,
dbms_lob.substr(f_clop,3,7) f_3
from test_clop where code_id=2

ผลที่ได้คือ f_1=123 , f_2=456,f_3=789
ประมาณนี้ครับ






ถ้าชอบบทความนี้ กด Like เลย :Oracle SQL วิธี query field CLOB แปลงเป็น String
TAGS : Oracle   CLOB   SQL Command   Programming   โปรแกรมมิ่ง  
 4,829 view  หมวดหมู่ : สำหรับโปรแกรมเมอร์  วันที่สร้าง : 07/09/2018



SOA,Java,XSLT

 ร่วมแสดงความคิดเห็นได้ที่นี่




× แจ้งเตือน! เราสนับสนุนทุกความคิดเห็น ที่ ใช้ถ้อยคำสุภาพ ไม่ละเมิดผู้อื่น ไม่ก่อให้เกิดความขัดแย้ง

เนื้อหาที่เกี่ยวช้อง

  mysql_fetch_array คือ คำสั่งอะไร มีข้อดียังๆง ถามเมื่อ (2016-08-30)   12,946 views  (ดูล่าสุดเมื่อ 16 วินาที!!)

  Java วิธีใช้ try with resources ใน Java 7 Code สวยขึ้นหมดห่วงเรื่อง Close ถามเมื่อ (2018-10-30)   2,165 views  (ดูล่าสุดเมื่อ 3 นาที)

  ขอตัวอย่าง Regular Expression Pattern ที่ใช้งานบ่อยๆ หน่อยครับ ถามเมื่อ (2015-09-29)   3,725 views  (ดูล่าสุดเมื่อ 5 นาที)

  เขียน PL SQL อ่าน ไฟล์ ยังไงครับ อยากรู้วิธีเขียน PL ให้อ่านไฟล์ใน Folder ถามเมื่อ (2012-05-16)   2,503 views  (ดูล่าสุดเมื่อ 6 นาที)

  PLSQL sub sttring คั่นด้วย | ใช้ REGEXP_SUBSTR ตอบโจทย์ ถามเมื่อ (2017-11-06)   1,674 views  (ดูล่าสุดเมื่อ 11 นาที)

  MEAN Stack กับ LAMP Stack คืออะไรครับ ถามเมื่อ (2015-09-29)   3,355 views  (ดูล่าสุดเมื่อ 13 นาที)

  แจก Code ตัวอย่าง Code และ Error ต่างๆ รวบรวมไว้ที่นี่ ถามเมื่อ (2016-07-28)   1,633 views  (ดูล่าสุดเมื่อ 13 นาที)

  Oracle if else เขียนยังไงครับใน PL SQL ถามเมื่อ (2013-03-04)   3,212 views  (ดูล่าสุดเมื่อ 14 นาที)

  Jquery ตัวอย่าง การจับตำแหน่ง scrollTop เพื่อ Load Data เพิ่มเมื่อเลื่อนจนถึงล่างสุด ถามเมื่อ (2019-05-29)   2,940 views  (ดูล่าสุดเมื่อ 16 นาที)

  Angular JS Query ข้อมูลจาก Database ผ่าน SQL ได้หรือไม่ ถามเมื่อ (2019-06-01)   2,350 views  (ดูล่าสุดเมื่อ 18 นาที)


 

บ้านเดียวกันดอทคอม เว็บถามตอบ รวมทุกเรื่องที่คุณอยากรู้ ให้ความรู้ ความบันเทิง มีสาระ
www.ban1gun.com