我有一个 SQL 表列 (BINARYTEXT),其中填充了CLOB。这个 CLOB 中有许多属性,例如,
CE.EffDate="20140106";
CE.CCY="EUR";
CE.TransactionType="STANDARDEUROPEAN";
CE.CAL="LON";
Run Code Online (Sandbox Code Playgroud)
我只需要提取双引号之间包含的 CE.TransactionType 属性的值,即“STANDARDEUROPEAN”。请注意,CLOB 不包含 XML,仅包含上述属性,没有开始或结束标记。
当我在命令中指定字符串时,我已经弄清楚如何使用 REGEXP_SUBSTR 函数来执行此操作:
select REGEXP_SUBSTR('CE.TransactionType="STANDARDEUROPEAN"', '="[^"]+') transtype
from DUAL
Run Code Online (Sandbox Code Playgroud)
返回:=“标准欧洲”
我无法将其操纵为使用 CLOB 作为字符串。这不起作用:
select REGEXP_SUBSTR(BINARYTEXT,'CE.TransactionType="STANDARDEUROPEAN"', '="[^"]+') transtype
from DUAL
Run Code Online (Sandbox Code Playgroud)
这会出现一个空白整数错误,尽管我不确定为什么它需要一个整数。