首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用xml序列(游标)从xml类型创建xml

使用xml序列(游标)从xml类型创建xml
EN

Stack Overflow用户
提问于 2014-04-03 22:57:23
回答 1查看 825关注 0票数 2

我让这个xml查询针对一个视图运行:(Oracle11g r1)

代码语言:javascript
复制
select xmlelement("clientid", xmlattributes (a.clientid),
                               (select xmlagg(
                                              xmlelement("plan",
                                                 xmlattributes(b.planid,b.planame),
                                                    xmlagg( xmlelement ("ppt", xmlattributes ( b.pname, b.pdname)
     )))) from **viewname** b
           where b.clientid = a.clientid
            group by b.planid,b.planname)) as xmlfrom **viewname** a group by a.clientid;

是否可以在xmlsequence(游标)而不是视图上运行此操作?即

代码语言:javascript
复制
select xmlelement("clientid", xmlattributes (a.clientid),
                               (select xmlagg(
                                              xmlelement("plan",
                                                 xmlattributes(b.planid,b.planame),
                                                    xmlagg( xmlelement ("ppt", xmlattributes ( b.pname, b.pdname)
     )))) from **table(xmlsequence(cursor))** b
           where b.clientid = a.clientid
            group by b.planid,b.planname)) as xml from **table(xmlsequence(cursor))** a group by a.clientid;

或者还有其他方法可以做到这一点?我的甲骨文xml的东西真的很缺乏,所以如果我的问题是新鲜事的话,我很抱歉.谢谢

EN

回答 1

Stack Overflow用户

发布于 2014-04-29 10:30:05

我不确定这是否是一个解决方案,但如果我想创建一个xml,我就会这样做:

我声明游标:

代码语言:javascript
复制
CURSOR cur(l_date_od date, l_date_do date) IS
    select ... from .. where ...;

我正在声明游标行类型

代码语言:javascript
复制
 variable cur%ROWTYPE;

并选择xml_type变量中的每一行。

代码语言:javascript
复制
open cur(local_date1,local_date2);
  loop
  fetch linia into variable ;
  exit when cur%NOTFOUND;
  select xmlelement("ROW", 
            xmlelement("VENDOR_SITE_CODE",variable .VENDOR_SITE_CODE ),
            xmlelement("ATTRIBUTE1",variable .ATTRIBUTE1 ),
            xmlelement("INVOICE_NUM",variable .INVOICE_NUM ),
            xmlelement("INVOICE_DATE",variable .INVOICE_DATE )
            )
        into xml_type_variable
        FROM dual;
        xml_file2 :=(xml_file.getClobVal()); ----Here i am conversing to clob
  end loop;
  close linia;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22850511

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档