問題描述:業務資料複雜不固定,使用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...