【问题标题】:How to split a CLOB content based on a delimiter?如何根据分隔符拆分 CLOB 内容?
【发布时间】:2014-06-07 21:36:39
【问题描述】:

我有一个如下所示的 CLOB 内容,

2004 年 6 月 24 日星期四 12:04:58 PDT|jnarayan|销售部的斯科特 打来电话,欠款,我会让安东尼奥知道并询问 他撤销付款。然而,仍然缺少过去的总 到期的。我正在解锁端口,但客户必须发送 尽早结清逾期未结余额。

基于分隔符“|”我想拆分这个内容,我想插入到一个新表中

'测试' --------

和类似的列

note_date, 姓名, note_text

【问题讨论】:

  • 您使用的是哪个 DBMS?后格雷斯?甲骨文?您的示例数据是 CLOBcharacter 大对象)而不是 BLOB二进制 大对象)。
  • 对不起,你是对的,这只是 clob

标签: sql database blob


【解决方案1】:

如果您使用 Oracle,您可以创建一个使用 substr 函数(包含在 PLQSL 中)来拆分 clob 的函数。

【讨论】:

  • 或者使用 Oracle 对 RegEx 的内置支持,这可能对 CLOB 数据更有效 (REGEXP_SUBSTR)
  • 是的,我只想使用 plsql,请给我代码
【解决方案2】:

考虑上面的文本在'cmets'列中并且类型是CLOB

select SUBSTR(COMMENTS, 1,INSTR(COMMENTS, '|',1,1)-1) dates,
       SUBSTR(COMMENTS, INSTR(COMMENTS, '|',1,1)+1,(INSTR(COMMENTS, '|',1,2)-INSTR(COMMENTS, '|',1,1)-1) ) EMPLOYEE_NAME,
       SUBSTR(COMMENTS, INSTR(COMMENTS, '|',1,2)+1,length(COMMENTS) ) COMMENTS 
  from MIG_BRM_ACCT_NOTE;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-09-19
    • 2013-02-27
    • 2018-10-25
    • 2020-04-18
    • 2020-04-11
    • 1970-01-01
    • 1970-01-01
    • 2018-12-27
    相关资源
    最近更新 更多