最近在做读取Oracle数据库中XML的项目。之前在MSSQL中使用过XPath读取,非常方便。最近这个Oracle也打算试试。好久不用略有生疏。简单介绍一下。
读取前要保存XML,这个很简单,在Oracle中建立一个CLOB类型的字段即可。更新的SQL如下:
DECLARE
V_xml CLOB :='<xml><name id="1">test1</name><name id="2">test2</name></xml>';
BEGIN
update tablename SET colname=V_xml where ID='1111222454f4913a9df93c718356af8';
END;
存储XML注意一下特殊字符,在XML只有”<”、”&”等字符是不能直接存入,理论替换两个即可。所以相对来说XML对特殊字符的处理比较简单。如下五个是xml预定义的实体引用,替换成第一列的转义字符即可:
< | < | 小于 |
> | > | 大于 |
& | & | 和号 |
' | ' | 单引号 |
" | " | 引号 |
注释:在 XML 中,只有字符 "<" 和 "&&