【发布时间】:2014-01-24 04:51:50
【问题描述】:
我有一个用 CLOB 填充的 SQL 表列 (BINARYTEXT)。在这个 CLOB 中有许多属性,例如
CE.EffDate="20140106";
CE.CCY="EUR";
CE.TransactionType="STANDARDEUROPEAN";
CE.CAL="LON";
我只需要提取包含在双引号之间的 CE.TransactionType 属性的值,即“STANDARDEUROPEAN”。请注意,CLOB 不包含 XML,仅包含上述属性,没有开始或结束标记。
当我在命令中指定字符串时,我已经弄清楚了如何使用 REGEXP_SUBSTR 函数来做到这一点:
select REGEXP_SUBSTR('CE.TransactionType="STANDARDEUROPEAN"', '="[^"]+') transtype
from DUAL
返回:="STANDARDEUROPEAN
我无法操纵它使用 CLOB 作为字符串。这不起作用:
select REGEXP_SUBSTR(BINARYTEXT,'CE.TransactionType="STANDARDEUROPEAN"', '="[^"]+') transtype
from DUAL
提前致谢,
史蒂夫
【问题讨论】:
-
“不起作用”是一个含糊不清的陈述。在这种情况下是什么意思?
-
嗨,丹。这会出现一个空白整数错误,尽管我不确定为什么它需要一个整数。
标签: sql regex oracle substr clob