【发布时间】:2015-06-15 20:24:25
【问题描述】:
我想了解是否可以通过正则表达式在存储的 Clob 字段中提取给定的属性值。
假设我有以下数据。
AttrName1+AttrVal1;
AttrName2+AttrVal2;
AttrName3+;
AttrName4+AttrVal4;
AttrName5+;
AttrName6+AttrVal7
现在在选择中,我想检查 AttrName2 是否具有值 AttrVal2。
请注意,并非所有属性名称都必须具有值。参见 AttrName3、AttrName 5
希望有人能启发我。
我知道这可以通过 dbms.function(instr、substr 等)实现,但也许有更简单的方法。
【问题讨论】:
-
它们是不同的行还是一起存储在 CLOB 中?
-
一起存储在同一列/行中
-
你试过用吗。 like field1 like '%'||filedb|'%'
-
正如我提到的,我需要查询在我的示例中硬编码的属性值。
-
SUBSTR会完成这项工作。您只需要将其显式转换为 VARCHAR2。看我的回答。
标签: sql oracle oracle10g regexp-replace