資料庫clob欄位資料解析

2021-08-20 16:00:03 字數 1778 閱讀 5446

問題描述:業務資料複雜不固定,使用json格式儲存在clob大字段中,後期需要通過sql批量取資料,怎麼解決?

解決方法: 使用substr、 instr、 tochar、 casethen方法去實

方法描述:

substr 方法:substr

(字串,擷取開始位置,擷取長度) //返回擷取的字

tochar方法:最大支援4000位元組

case 用法:case

when 

《條件表示式》 then 滿足條件返回值 else 不滿足條件返回值

select j.custom_num as 客戶號,

j.trade_serinum,

to_char(substr(m.workitem_message,

instr(m.workitem_message,

'"shareholderidnumber"',

1,2) + 23,

(instr(m.workitem_message,

'","shareholderidnumber2"',

1,2) - instr(m.workitem_message,

'"shareholderidnumber":',

1,2) - 23))) as 控股股東1證件號碼,

(case

when instr(m.workitem_message, '"shareholderaddress"', 1, 2) = '0' then

''else

to_char(substr(m.workitem_message,

instr(m.workitem_message,

'"shareholderaddress"',

1,2) + 22,

(instr(m.workitem_message,

'","shareholderaddress2"',

1,2) - instr(m.workitem_message,

'"shareholderaddress":',

1,2) - 22)))

end) as 控股股東1住所,

(select max(s.task_submit_time)

from tbas_task_submit_message s

where s.trade_serinum = j.trade_serinum

and s.task_code = 'a0314') as 任務提交時間

from tbas_task_submit_message m, tbas_tradesernum_journal j

where m.trade_serinum = j.trade_serinum

and m.task_code = 'a0313'

and j.trade_status = 545

and j.trade_start_time >

to_date('20170530 00:00:00', 'yyyymmdd hh24:mi:ss')

and j.trade_start_time <=

to_date('20170630 00:00:00', 'yyyymmdd hh24:mi:ss');



資料庫 訪問字段資料

在學生資訊管理系統中,查詢資料,修改資料都需要從表中提取字段資料,現在我們來看看5中訪問欄位的方法 1.根據字段索引值來訪問字段資料 dim mcc as adodb.recordset mcc.fields 1 value 這種方法在分析 時有些不方便,不知道該字段的名稱,這是,我們可以選用另一種...

Oracle資料庫匯出大字段 CLOB 資料

匯出clob的幾個sql語句 1.匯出含有大字段資料的m條記錄 expuser passwd statistics none compress n consistent y file oradata info backup exp article.dmp log oradata info backu...

資料庫之欄位資料型別

1.整數資料型別 bigint 整數值超過int資料範圍時才可以使用 int 是將乙個數值向下取整為最接近的整數的函式 smallint 需要 2 個 位元組儲存的整數。tinyint tinyint 型的字段如果設定為unsigned型別,只能儲存從0到255的整數,不能用來儲存負數。tinyin...