Skip to Main Content

Database Software

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

XMLELEMENT/ XMLAGG functions - Fetching the result into a variable

541826Oct 25 2006 — edited Oct 25 2006
Hi, I have a query to generate an XML output. I have the following questions:

1) I am typecasting the result from this query to a VARCHAR2 and I want to assign the output to a VARCHAR2 variable. Can you please help me with that. When I try to get this into a varchar variable, i get the following error:

declare
x varchar2(6000);
begin
SELECT CAST(xmlelement("itemMaster",
xmlelement("itemNumber",lpad(d.dept_i,3,0)||lpad(d.class_i,2,0)||lpad(d.item_i,4,0)),
xmlelement("itemDesc",NVL(d.ITEM_DESC_T,lpad(d.dept_i,3,0)||lpad(d.class_i,2,0)||lpad(d.item_i,4,0))),
xmlelement("paltSize",p1_test),
xmlelement("stdUOM",p1_test),
xmlelement("sellByDayQty",d.sell_by_day_q),
xmlelement("shflfUOM",p1_test),
xmlelement("minShflfDayQty",d.min_shflf_day_q),
xmlelement("itemCatgCode",NVL(d.dc_item_catg_c,'GM')),
xmlelement("strgTempZoneCode",NVL(d.strg_tmpr_zone_c,'01')),
xmlelement("retailAmt",retl_a),
xmlelement("expireDateFlag",NVL(d.expire_date_f,'N')),
xmlelement("randomWtFlag",NVL(d.rndm_wt_f,'N')),
xmlelement("wetFlag",NVL(d.wet_f,'N')),
xmlelement("areaCode",d.area_c),
xmlelement("vcpQty",d.vcp_q),
xmlelement("sspQty",d.ssp_q),
xmlelement("hndlTypeCode",d.hndl_type_c),
xmlelement("mstrPackTypeCode",d.mstr_pk_type_c),
xmlelement("mstrItemTypeCode",NVL(d.mstr_item_type_c,'00')),
xmlelement("sszCode",d.reg_ssz_excpt_c),
xmlelement("agriFlag",NVL(d.agrl_f,'N')),
xmlelement("itemRankCode",d.item_rank_c),
xmlelement("hazardFlag",NVL(d.hazd_mtrl_f,'N')),
xmlelement("createDate",to_char(d.create_d,'MM-DD-YYYY HH24:MI:SS')),
xmlelement("updateDate",to_char(d.modf_ts,'MM-DD-YYYY HH24:MI:SS')),
xmlelement("actvnDate",to_char(d.actvn_d,'MM-DD-YYYY HH24:MI:SS')),
xmlelement("organicCode",d.ognc_c),
xmlelement("lotCntlFlag",NVL(d.lot_cntl_f,'N')),
xmlelement("flammableFlag",NVL(d.flam_c,'N')),
xmlelement("recordMode",c.action_c),
xmlelement("areaType",p1_test),
xmlelement("uoms",
xmlelement("uom",
xmlelement("prodUOM",p1_test),
xmlelement("ratioDen",p1_test),
xmlelement("consldtRule",p1_test),
xmlelement("unitWtQty",NVL(d.unit_wt_q,1)),
xmlelement("vcpHeightQty",NVL(d.vcp_ht_q,1)),
xmlelement("vcpWidthQty",NVL(d.vcp_wth_q,1)),
xmlelement("vcpLengthQty",NVL(d.vcp_lgth_q,1)),
xmlelement("layerQty",p1_test)
)
),
(SELECT xmlelement("aliases",
xmlagg(xmlelement("upcCode",trunc(b.bar_code_i))
ORDER BY b.dept_i,b.class_i,b.item_i
)
)
FROM dc_item_bar_code b,
dc_item a
WHERE a.dept_i = b.dept_i
AND a.class_i = b.class_i
AND a.item_i = b.item_i
AND a.dept_i = c.dept_i
AND a.class_i = c.class_i
AND a.item_i = c.item_i
)
)
AS VARCHAR2(4000)
) INTO x
FROM dc_item d, item_wm_trigger_w c
WHERE d.dept_i = c.dept_i
AND d.class_i = c.class_i
AND d.item_i = c.item_i;
end;
/
*
ERROR at line 1:
ORA-06550: line 49, column 33:
PLS-00306: wrong number or types of arguments in call to 'XMLAGG'
ORA-06550: line 49, column 33:
PL/SQL: ORA-00904: "XMLAGG": invalid identifier
ORA-06550: line 4, column 1:
PL/SQL: SQL Statement ignored

When I run this query without the
declare

begin

select....
into...

end

construct, it's working perfectly fine.

Any help would be greatly appreciated.

Thanks,
Nitin
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Nov 22 2006
Added on Oct 25 2006
6 comments
1,208 views