sqlplus 报告 - XML 数据被截断

发布于 2024-08-28 12:33:16 字数 1269 浏览 7 评论 0原文

我正在运行一个查询,该查询将 XML 数据和假脱机返回到文件。我遇到查询输出被截断的问题。它看起来像这样:

XMLDATA                                          
----------------------------------------         
<?xml version="1.0" standalone="yes"?>           
<msgs>                                           
  <msg>                                          
    <PNUM>ABC12345                       

我期望的是这样的:

XMLDATA                                          
----------------------------------------         
<?xml version="1.0" standalone="yes"?>           
<msgs>                                           
  <msg>                                          
    <PNUM>ABC1234567</PNUM>
    <MSG_ID>1234</MSG_ID>
    <NAME>Test message</NAME>
    <TEXT>This is the main content of the message</TEXT>
  </msg>
  <!-- about 60 other msg elements -->
</msgs>

select 语句足够简单:

select xmlroot(xmlelement("msgs",xmlagg(xmlelement("msg",xmlforest(PNUM , MSG_ID , NAME, TEXT)))), VERSION '1.0', STANDALONE YES) xmldata
from ...

我猜这里有一些 sqlplus 格式化技巧,我只是不知道是哪一个(甚至不知道是哪一个)它叫什么)。

(Oracle版本为10g)

I am running a query that returns XML data and spools to a file. I'm having a problem where the output of the query is being truncated. Here's what it looks like:

XMLDATA                                          
----------------------------------------         
<?xml version="1.0" standalone="yes"?>           
<msgs>                                           
  <msg>                                          
    <PNUM>ABC12345                       

What I am expection was something like this:

XMLDATA                                          
----------------------------------------         
<?xml version="1.0" standalone="yes"?>           
<msgs>                                           
  <msg>                                          
    <PNUM>ABC1234567</PNUM>
    <MSG_ID>1234</MSG_ID>
    <NAME>Test message</NAME>
    <TEXT>This is the main content of the message</TEXT>
  </msg>
  <!-- about 60 other msg elements -->
</msgs>

The select statement is simple enough:

select xmlroot(xmlelement("msgs",xmlagg(xmlelement("msg",xmlforest(PNUM , MSG_ID , NAME, TEXT)))), VERSION '1.0', STANDALONE YES) xmldata
from ...

I am guessing there's some sqlplus formatting trick here, I just don't know which one (or even what it's called).

(Oracle version is 10g)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

你列表最软的妹 2024-09-04 12:33:16

可能会有所帮助:

数据类型列的默认宽度
是列的宽度
数据库。 LONG 的列宽,
CLOB、NCLOB 或 XMLType 默认为
SET LONGCHUNKSIZE 或 SET 的值
LONG,以较小者为准,所以我
设置 LONG 和 LONGCHUNKSIZE
到 32K,效果非常好。

This might help:

The default width of datatype columns
is the width of the column in the
database. The column width of a LONG,
CLOB, NCLOB or XMLType defaults to the
value of SET LONGCHUNKSIZE or SET
LONG, whichever is the smaller, so I
set BOTH LONG and LONGCHUNKSIZE
to 32K and it worked beautifully.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文