2
我在Oracle中使用dbms.xmlgen
实用程序从保存到Oracle内存表的数据创建XML文档。使用Oracle XMLgen Utility创建XML使用内存表数据
我的程序正在将数据保存在Oracle类型ITEM_ARRAY
中。这是ITEM_OBJECT
类型的表格。
最后的数据是在我的ITEM_ARRAY
。现在我想将这些数据转换成XML。所以我使用下面的代码
ctx:= DBMS_XMLGEN.newContext(' SELECT * FROM TABLE(CAST(V_ITEMLIST AS ITEM_ARRAY)) where (ITEM_NO is not null or trim(ITEM_NO) is not null) order by ITEM_NO,PARTYABBRVCODE ');
DBMS_XMLGEN.setRowTag (ctx, 'itembom');
DBMS_XMLGEN.setRowSetTag (ctx, 'itemboms');
xmldoc := DBMS_XMLGEN.getXML(ctx);
我的这段代码返回错误,V_ITEMLIST
不存在。
但是当我做dbms_out像
For I In 1..V_Itemlist.Count Loop
Dbms_Output.Put_Line('Partyabbrvcode '||V_Itemlist(I).Partyabbrvcode);
DBms_Output.Put_Line('Item_No'||V_Itemlist(I).Item_No);
这是返回值。
我正在尝试不同的方法,如将V_ITEMLIST
保存到游标中,然后如下调用该代码。
ctx := dbms_xmlgen.newContext (ITEMCUR);
xmldoc := DBMS_XMLGEN.getXML(ctx);
DBMS_XMLGEN.closeContext(ctx);
其中项光标是
SELECT * FROM TABLE(CAST(V_ITEMLIST AS ITEM_ARRAY)) where (ITEM_NO is not null or trim(ITEM_NO) is not null) order by ITEM_NO,PARTYABBRVCODE.
这也示出了错误数值或数值误差。
有人请建议如何实现这一点。
欢迎来到StackOverflow。多行代码不使用任何引号来进行格式化,只是缩进。只需插入代码,选择它并点击'{}'按钮。并且使用全部大写字母被认为是不好的风格。我解决了这两个问题。 – Codo