使用PL-SQL提取基于属性的XML



我有一些属性XML文件,它以CLOB格式存储在DB中。木栓柱的长度各不相同,从200到9000不等。由于xmltype不能直接使用CLOB,所以我必须将CLOB转换为字符串,然后将其传递到xmltype中。有其他选择吗?因为当clob转换为字符串时,它最多可以容纳4000个字符,并且XML没有正确解析,所以

我不确定你使用的是哪个数据库版本——我已经尝试过10、11和12。它与clob配合使用很好。这是我的示例

create table some_table(num_col number, clob_col clob);
declare 
clob_var clob := to_clob('... a long long clob ...'); -- works smoothly without "to_clob" as well
begin
insert into some_table values(1, clob_var);
end;

我使用了这里的xml示例因此,查询

SELECT XMLTYPE(t.clob_col).EXTRACT('//book/genre').getStringVal()
FROM some_table t;

给了我以下

<genre>Computer</genre>
<genre>Fantasy</genre>
<genre>Fantasy</genre>
<genre>Fantasy</genre>
<genre>Fantasy</genre>
<genre>Romance</genre>
<genre>Romance</genre>
<genre>Horror</genre>
<genre>Science Fiction</genre>
<genre>Computer</genre>
<genre>Computer</genre>
<genre>Computer</genre>

因此,我认为您应该让xmltype尝试处理您的clob数据,因为它似乎可以很好地处理这种类型的数据

最新更新