神通数据库与Oracle的XML兼容性¶
XML函数列表¶
| 神通数据库函数名 | Oracle函数名 | 函数概要 | 功能是否相同 | 语法是否相同 |
|---|---|---|---|---|
| APPENDCHILDXML | APPENDCHILDXML | 把用户提供的值作为xpath表达式指向节点的子节点加入到目标xml中 | 是 | 是 |
| DELETEXML | DELETEXML | 在目标xml数据中把xpath指向的一个或多个节点删掉 | 是 | 是 |
| EXISTSNODE | EXISTSNODE | 确定特定的XML节点的路径是否存在,返回0表示节点不存在,返回1表示节点存在 | 是 | 是 |
| EXTRACT | EXTRACT | 得到一个xpath表达式作用于xml数据上产生的结果,该结果是一个节点集合 | 是 | 是 |
| EXTRACTVALUE | EXTRACTVALUE | 把目标节点的值以varchar类型的形式返回 | 是 | 是 |
| GETCLOBVAL | GETCLOBVAL | 将xml数据转换为clob | 是 | 是 |
| GETNUMBERVAL | GETNUMBERVAL | 把一个xml的text节点转为数值类型 | 是 | 是 |
| GETSTRINGVAL | GETSTRINGVAL | 将xml数据转换为varchar | 是 | 是 |
| INSERTCHILDXML | INSERTCHILDXML | 把用户提供的值插入到目标xml中xpath表达式指向的节点 | 是 | 是 |
| INSERTXMLBEFORE | INSERTXMLBEFORE | 根据指定xpath查找xmltype对象,将xml节点插入这些对象的前面。 | 是 | 是 |
| UPDATEXML | UPDATEXML | 以一个xmltype实例和一系列的xpath-value对作为参数,返回更新后的xml数据 | 是 | 是 |
| XMLAGG | XMLAGG | 接受 XML 片段的集合并返回聚合的 XML 文档。任何返回 null 的参数都会从结果中删除 | 是 | 是 |
| XMLCOMMENT | XMLCOMMENT | 将SQL数据转换成XML内容,用以在XML创建注释 | 是 | 是 |
| XMLCONCAT | XMLCONCAT | 连接多个XMLType实例,并生成新的XMLType实例。 | 是 | 是 |
| XMLELEMENT | XMLELEMENT | 使用指定的元素名称、元素的可选属性集合和构成元素的内容产生一个xml元素 | 是 | 是 |
| XMLFOREST | XMLFOREST | 将其每个参数转换为 XML,然后返回一个 XML 片段,该片段是这些转换后的参数的串联 | 是 | 是 |
| XMLPI | XMLPI | 用于生成XML处理指令 | 是 | 是 |
| XMLROOT | XMLROOT | 根据现有XML信息提供的根信息来创建新的XML值。 | 是 | 是 |
| XMLTABLE | XMLTABLE | 把XQuery的计算结果以表的形式返回。在sql中可以像访问表一样访问该函数的结果 | 是 | 是 |
| XMLTYPE | XMLTYPE | 把一个xml文本数据转换为用于指定XMLType实例 | 是 | 是 |
包中XML函数和存储过程¶
包中的XML函数和存储过程向Oracle兼容,主要包括 DBMS_XMLDOM、DBMS_XMLPARSER、DBMS_XSLPROCESSOR 三个包,其名称、功能、语法等与Oracle基本相同
DBMS_XMLDOM包¶
DBMS_XMLDOM 包中有较多的XML函数和存储过程,分为DOMNode、DOMCharacterData、DOMDocument、DOMElement、DOMNamedNodeMap、DOMNodeList、DOMText 分别介绍
DOMNode¶
本表列出并简要说明了 DBMS_XMLDOM 的 DOMNode 相关的XML函数和存储过程
| 子程序 | 描述 |
|---|---|
| APPENDCHILD函数 | 将节点newchild添加到此节点的子节点列表末尾,并返回 新添加的节点。如果newchild节点已在树中,则首先将其移除 |
| CLONENODE函数 | 节点的通用复制构造函数。复制节点没有父节点,父节点为NULL |
| FREENODE存储过程 | 释放与节点相关的所有资源 |
| GETATTRIBUTES函数 | 检索包含此节点(元素)属性的NAMEDNODEMAP,否则为NULL |
| GETCHILDNODES函数 | 检索包此节点包含的所有子节点的 DOMNODELIST |
| GETFIRSTCHILD函数 | 检索此节点的第一个子节点,如果没有该节点,则返回 NULL |
| GETLOCALNAME存储过程 | 读取节点限定名称的本地部分,不包含命名空间前缀 |
| GETNODENAME函数 | 根据节点的类型获取节点的名称 |
| GETNODETYPE函数 | 检索节点的类型 |
| GETNODEVALUE函数 | 根据节点的类型获取节点的值 |
| GETOWNERDOCUMENT函数 | 检索与此节点相关联的 Document 对象 |
| HASCHILDNODES函数 | 用于确定此节点是否有任何子节点 |
| IMPORTNODE函数 | 从外部文档导入一个节点,并返回这个新节点 |
| INSERTBEFORE函数 | 将节点newchild插入现有子节点refchild之前 如果refchild为空,则将newchild插入子节点列表的末尾 |
| ISNULL函数 | 测试节点是否为NULL |
| MAKECHARACTERDATA函数 | 将指定的DOMNODE转换为DOMCHARACTERDATA |
| MAKEDOCUMENT函数 | 将指定的DOMNODE转换为DOMDOCUMENT |
| MAKEELEMENT函数 | 将指定的DOMNODE转换为DOMELEMENT |
| REMOVECHILD函数 | 从子节点列表中删除oldchild所指的子节点,并返回该子节点 |
| WRITETOBUFFER存储过程 | 使用数据库字符集将 XML 节点写入指定的缓冲区 |
| WRITETOCLOB存储过程 | 使用数据库字符集将 XML 节点写入指定的 CLOB |
DOMCharacterData¶
本表列出并简要说明了 DBMS_XMLDOM 的 DOMCharacterData 相关的XML函数和存储过程
| 子程序 | 描述 |
|---|---|
| GETLENGTH函数 | 获取数据中的字符数。该值可能为零,因为 CharacterData 节点可能为空 |
| MAKENODE函数 | 将指定的DOMCHARACTERDATA转换为DOMNODE,并返回该DOMNODE |
DOMDocument¶
本表列出并简要说明了 DBMS_XMLDOM 的 DOMDocument 相关的XML函数和存储过程
| 子程序 | 描述 |
|---|---|
| CREATEELEMENT函数 | 用于创建一个DOMELEMENT节点 |
| CREATETEXTNODE函数 | 用于创建DOMTEXT节点 |
| FREEDOCUMENT存储过程 | 释放DOMDOCUMENT对象 |
| GETDOCUMENTELEMENT函数 | 返回DOMDOCUMENT的根元素 |
| GETELEMENTSBYTAGNAME函数 | 返回具有指定标签名称的所有元素的DOMNODELIST |
| GETVERSION函数 | 此函数返回DOMDOCUMENT的版本 |
| ISNULL函数 | 检查指定的DOMDOCUMENT是否为NULL;如果NULL,则返回TRUE |
| MAKENODE函数 | 将DOMDOCUMENT转换为DOMNODE,并返回该DOMNODE |
| NEWDOMDOCUMENT函数 | 返回一个新的DOMDOCUMENT实例 |
| SETVERSION存储过程 | 设置DOMDOCUMENT的版本 |
DOMElement¶
本表列出并简要说明了 DBMS_XMLDOM 的 DOMElement 相关的XML函数和存储过程
| 子程序 | 描述 |
|---|---|
| GETATTRIBUTE函数 | 按名称返回DOMELEMENT属性的值 |
| GETCHILDRENBYTAGNAME函数 | 返回给定标记名的DOMELEMENT的子代 |
| GETELEMENTSBYTAGNAME函数 | 返回给定标记名的DOMELEMENT的子元素 |
| GETTAGNAME函数 | 此函数返回DOMELEMENT的名称 |
| MAKENODE函数 | 将指定的DOMELEMENT转换为DOMNODE,并返回DOMNODE |
| SETATTRIBUTE存储过程 | 按名称设置 DOMELEMENT 的属性值 |
DOMNamedNodeMap¶
本表列出并简要说明了 DBMS_XMLDOM 的 DOMNamedNodeMap 相关的XML函数和存储过程
| 子程序 | 描述 |
|---|---|
| ISNULL函数 | 检查指定的DOMNAMEDNODEMAP是否为空;如果为空,则返回TRUE |
| ITEM函数 | 返回映射中与 INDEX 参数相对应的项目 |
| GETLENGTH函数 | 获取此映射中的节点数 |
DOMNodeList¶
本表列出并简要说明了 DBMS_XMLDOM 的 DOMNodeList 相关的XML函数和存储过程
| 子程序 | 描述 |
|---|---|
| GETLENGTH函数 | 获取DOMNodeList中的节点数 |
| ITEM函数 | 返回集合中与INDEX参数相对应的项目 |
DOMText¶
本表列出并简要说明了 DBMS_XMLDOM 的 DOMText 相关的XML函数和存储过程
| 子程序 | 描述 |
|---|---|
| MAKENODE函数 | 将DOMTEXT转换为DOMNODE,并返回DOMNODE |
DBMS_XMLPARSER包¶
本表列出并简要说明了 DBMS_XMLPARSER 相关的XML函数和存储过程
| 子程序 | 描述 |
|---|---|
| GETDOCUMENT函数 | 返回解析器构建的DOM树文档节点。只有在解析完文档后才可调用此函数 |
| NEWPARSER函数 | 使用指定的解析器解析一个字符串形式的xml数据,返回新的解析器实例 |
| FREEPARSER存储过程 | 该程序释放一个解析器对象 |
| PARSEBUFFER存储过程 | 从解析器中得到解析出的文档,PARSEBUFFER会解析存储在给定缓冲区中的XML |
DBMS_XSLPROCESSOR包¶
本表列出并简要说明了 DBMS_XSLPROCESSOR 相关的XML函数和存储过程
| 子程序 | 描述 |
|---|---|
| SELECTNODES函数 | 从 DOM 树中选择与提供的路径表达式匹配的节点,并返回选择结果 |
| SELECTSINGLENODE函数 | 从树中选择与所提供路径表达式匹配的第一个节点,并返回该节点。 |
| VALUEOF函数 | 将检索树中与给定模式匹配的第一个节点的值 |