oracle xml操作

--xmlelement多个标签层级
SELECT XMLELEMENT("TEST",
                  XMLELEMENT("AA",
                             XMLELEMENT("BB", ‘XXX‘),
                             XMLELEMENT("CC", ‘XXX‘)))
  FROM DUAL;
  SELECT XMLELEMENT("test")
    FROM DUAL
----XMLATTRIBUTES 多个属性
SELECT XMLELEMENT("TEST",
                  ‘123‘,
                  XMLELEMENT("AA",
                             XMLATTRIBUTES(‘1235678‘ "test_attribute"),
                             XMLELEMENT("BB",
                                        XMLATTRIBUTES(‘z‘ "attr",NULL "XO"),
                                        ‘XXX‘),
                             XMLELEMENT("CC", ‘XXX‘)),
                  ‘qwe‘)
  FROM DUAL;

--xmlforest ,如果要定义标签节点属性值则不能用
SELECT XMLELEMENT("TEST",XMLFOREST(NULL "WW",‘1‘ "XX",‘3‘ "xx")) FROM dual;
--关于空值是否会生成生应的标签
--1、xmlelement 空值或null都会有结束的标签不会出现</> ,xmlattributes 空值或null对应的键名不会出现
    SELECT XMLELEMENT("test", XMLELEMENT("test1", XMLATTRIBUTES(1 "test1_attribute"),NULL),
                              XMLELEMENT("test2", XMLATTRIBUTES(‘‘ "test2_attribute"),‘‘),
                              XMLELEMENT("test3", XMLATTRIBUTES(NULL "test3_attribute")),‘haha‘)
    FROM dual;
--2.xmlforest  null整个标签名不会出现,单引号会出现
SELECT XMLELEMENT("test", XMLFOREST(NULL "test1",‘‘ test3)) FROM dual;
--xmlagg 生成xml片段
WITH t AS (SELECT ‘1‘ a,‘A‘ b FROM dual)-- UNION ALL SELECT ‘2‘,‘A‘ b FROM dual UNION ALL SELECT ‘3‘,‘B‘ b FROM dual)
--1
SELECT XMLELEMENT("KK",XMLAGG(XMLELEMENT("TEST",a))) FROM t GROUP BY b;
--2
SELECT XMLELEMENT("TT",(SELECT XMLAGG(XMLELEMENT("TEST",a)  ORDER BY a) FROM t)) FROM dual;
--排序
SELECT XMLELEMENT("KK",XMLAGG(XMLELEMENT("TEST",a) ORDER BY a DESC)) FROM t GROUP BY b;
--可生成无效的xml,xml只能有一个根结节点
SELECT XMLAGG(XMLELEMENT("TEST",a)) FROM t
--以下会报错
SELECT XMLTYPE.CreateXML(‘<dummy>X</dummy><dummy>y</dummy>‘) FROM dual;

--聚合,可替代 sys_path_connect_by,listagg
WITH Q AS
 (SELECT 1 KEY, ‘A‘ X
    FROM DUAL
  UNION ALL
  SELECT 2 KEY, ‘B‘ X
    FROM DUAL
  UNION ALL
  SELECT 3 KEY, ‘A‘ X
    FROM DUAL
  UNION ALL
  SELECT 4 KEY, ‘A‘ X
    FROM DUAL)
--1
SELECT X,
RTRIM(
XMLAGG (XMLELEMENT(e, key||‘,‘) ORDER BY key)
) AS concatval
FROM q
GROUP BY X;
--2
SELECT X,
       RTRIM(XMLAGG(XMLELEMENT(E, KEY || ‘,‘) ORDER BY KEY)
             .EXTRACT(‘//text()‘),
             ‘,‘) AS CONCATVAL
  FROM Q
 GROUP BY X;
时间: 2024-08-02 15:10:40

oracle xml操作的相关文章

XML操作

XML: XML 指可扩展标记语言 XML 被设计用来传输和存储数据. XML 被设计用来结构化.存储以及传输信息. xml文档展示: -----------------------------xml文档 <?xml version="1.0" encoding="ISO-8859-1"?> <note> <to>George</to> <from>John</from> <heading

c#xml操作

简单的xml操作--解析技能xml xml文件 <skills> <skill> <id>1</id> <name lang="cn">大荒囚天指</name> <demage>100</demage> </skill> <skill> <id>2</id> <name lang="en">绝对零度</na

Oracle clob 操作

--Oracle clob 操作 -- Created on 2015/4/8 by TianPing declare -- Local variables here v_clob1 Clob; v_clob2 Clob; v_amount Int; --长度 v_offset Int; --偏移量 str varchar2(100); Begin --初始或清空clob变量 dbms_lob.createtemporary(v_clob1,True); dbms_lob.createtempo

使用 IntraWeb (31) - IntraWeb 的 Xml 操作使用的是 NativeXml

在 IWNativeXml 单元. 知道了这个, 以后在其他 Delphi 程序中也可以直接 Uses IWNativeXml 了. TNativeXml (IWNativeXml.TNativeXml property AbortParsing: Boolean property BinaryEncoding: TBinaryEncodingType property CommentString: UTF8String property DropCommentsOnParse: Boolean

jdbc调用 oracle 存储过程操作

创建有参存储函数findEmpNameAndSal(编号),查询7902号员工的的姓名和月薪,[返回多个值,演示out的用法]当返回2个或多个值,必须使用out符号当返回1个值,就无需out符号 create or replace function findEmpNameAndSal(pempno in number,pename out varchar2) return numberas psal emp.sal%type;begin select ename,sal into pename,

基于OCILIB的oracle数据库操作总结及自动生成Model和Dao的工具

基于OCILIB的oracle数据库操作总结 1.       类图 2.       基类BaseOCIDao的设计与实现 BaseOCIDao.h头文件 #pragma once /* --------------------------------------------------------------------------------------------- * * INCLUDES * ----------------------------------------------

Oracle集合操作函数:union、intersect、minus

[转]Oracle集合操作函数:union.intersect.minus 集合操作符专门用于合并多条select 语句的结果,包括:UNION, UNION ALL, INTERSECT, MINUS.当使用集合操作符时,必须确保不同查询的列个数和数据类型匹配. 集合操作符具有以下注意事项: 集合操作符不适用于LOB.VARRAY和嵌套表列. UNION.INTERSECT.MINUS操作符不使用于 LONG列. 如果选择列表中包含有表达式或者函数,那么必须为表达式或者函数定义列别名. 1.U

查询ORACLE数据库操作记录

代码: SELECT a.First_Load_Time,        a.Sql_Text,        s.Sid,        s.Serial#,        s.Program --,        ,        a.* --       Utl_Inaddr.Get_Host_Address(s.Terminal) Ip   FROM V$sqlarea a, V$session s  WHERE s.Sql_Address(+) = a.Address    AND U

Oracle clob 操作函数

1 instr(objClob,objstr,beginIndex,appearIndex)objClob:带检索目对象,可以是clob,stringobjstr: 需要验证的字符串beginIndex: 开始检索位置,默认从1开始appearIndex: 出现的位置,默认为1select instr('bbbbbbbbbabbbba','a') from dual;Oracle clob 操作函数,布布扣,bubuko.com