Converting a 2Dimensional Array(Hierarchical Data) into XML List/Xml/Xmlistcollection in Flex
How to convert a flat/hierarchical data (which I get from Excel as 2D Array) to XML format in Flex. The following is my Hierarchical Data:(Table form)
Asia
India
Chennai
TN
Category1
Product1
100
Asia
India
Mumbai
MH
Category1
Product1
100
Asia
India
Calcutta
CT
Category1
Product1
100
Asia
India
Calcutta
CT
Category2
Product2
200
EMEA
UK
London
LN
Category3
Product1
122
EMEA
UK
London
LN
Category3
Product2
201
EMEA
UK
Reading
RN
Category1
Product1
123
EMEA
UK
Reading
RN
Category1
Product2
455
I need to format/convert this to XML format so that I can populate that resulting xml as dataprovider to a Tree control.
I need to populate the above data into Tree component such that I get the following output:
Asia
India
Chennai
TN
Category1
Product1
100
Mumbai
MH
Category1
Product1
100
.............goes on till last numerical data of above table
Try this into json then to xml. I did similar one using PHP and JSON.
Similar Messages
-
Methods in bapi used to convert data into XML
Methods in bapi used to convert data into XML,
how to implement those also,
points will be rewarded
Thank you,
Regards,
Jagrut BharatKumar ShuklaHi
Check this
http://www.sap-img.com/abap/sample-xml-source-code-for-sap.htm
https://forums.sdn.sap.com/click.jspa?searchID=2889167&messageID=3406594
Reward points for useful Answers
Regards
Anji -
How to Convert internal table data into xml and xml data into internal tab
Hi Guys,
I have a requirement that i have to convert the internal table data into xml format and viceversa . for my requirement i came to know that i have to use Transformations concept. i done the converting the data from internal table into xml data by using standard Tranformations. My Question is
1) Can i use same Transformation to convert the xml data into abap internal table. if it is possible then how ???
2) Is it possible using the standard Transformation or I have to go for XSLT approach
Please help me out from this guys,
Thanks and Regards
KotiHi Koti,
This is possible. There is a link. With the help of this link you can convert ABAP data to XML and vice versa.
Link: http://www.heidoc.net/joomla/index.php?option=com_content&view=article&id=15:sapxslt&catid=22:sap-xslt&Itemid=31 -
Why we need to conver Context Node data into XML file----Export to Excel
Hi All,
Let me clarify my dought........today i have gone through the concept of "Exporting Context Data Using the Webdynpro Binary cache" in SAP Online Help.
From the SAP Online Help pdf document, i have found that, the context node data has been converted first in to XML file,after that file had been stored in the web dynpor binary cache...bla....bla.........
Here my qtn is why they had converted context node data into XML file. With out doing that can not we export context node data to excel file..?
Regards
Seshu
Edited by: Sesshanna D on Dec 19, 2007 7:25 AMHi Sesshanna,
it is not neccessary to do that but xml has the advantage, that it can be easily transformed into every output format that might occur in later project stages.
If it's simply about blowing out some Excel, I suggest using an OSS library such as jexcelAPI or Jakarta POI and building the Excel how you need it.
regards,
Christian -
Hi Gurus,
Could anyone please tell me
How to extract data in SAP BW (ODS or Infocube) into XML File.Hi All,
thanx alot for your help.
finally i got my solution.
I have written ABAP code and converted ODS data into XML.
Hope it will help you all.....
REPORT ZCONVERT_TO_XML .
TABLES: /BIC/AZHSO0400.
PARAMETERS: GK_RUTA TYPE RLGRAP-FILENAME .
DATA: ITAB LIKE /BIC/AZHSO0400 OCCURS 1 WITH HEADER LINE.
DATA: L_DOM TYPE REF TO IF_IXML_ELEMENT,
M_DOCUMENT TYPE REF TO IF_IXML_DOCUMENT,
G_IXML TYPE REF TO IF_IXML,
W_STRING TYPE XSTRING,
W_SIZE TYPE I,
W_RESULT TYPE I,
W_LINE TYPE STRING,
IT_XML TYPE DCXMLLINES,
S_XML LIKE LINE OF IT_XML,
W_RC LIKE SY-SUBRC.
DATA: XML TYPE DCXMLLINES.
DATA: RC TYPE SY-SUBRC.
DATA: BEGIN OF XML_TAB OCCURS 0,
D LIKE LINE OF XML,
END OF XML_TAB.
START-OF-SELECTION.
PERFORM GET_DATA.
PERFORM CONVERT_XML.
*PERFORM CONVERT_XML.
*& Form GET_DATA
text
--> p1 text
<-- p2 text
FORM GET_DATA .
SELECT * FROM /BIC/AZHSO0400 INTO TABLE ITAB.
ENDFORM. " GET_DATA
*& Form CONVERT_XML
text
--> p1 text
<-- p2 text
FORM CONVERT_XML .
CLASS CL_IXML DEFINITION LOAD.
G_IXML = CL_IXML=>CREATE( ).
CHECK NOT G_IXML IS INITIAL.
M_DOCUMENT = G_IXML->CREATE_DOCUMENT( ).
CHECK NOT M_DOCUMENT IS INITIAL.
WRITE: / 'Converting DATA TO DOM 1:'.
CALL FUNCTION 'SDIXML_DATA_TO_DOM'
EXPORTING
NAME = 'ITAB'
DATAOBJECT = ITAB[]
CONTROL =
IMPORTING
DATA_AS_DOM = L_DOM
CHANGING
DOCUMENT = M_DOCUMENT
TYPE_HANDLE =
EXCEPTIONS
ILLEGAL_NAME = 1
OTHERS = 2
IF SY-SUBRC = 0.
WRITE:/ 'OK'.
ELSE.
WRITE: 'ERR = ', SY-SUBRC.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CHECK NOT L_DOM IS INITIAL.
W_RC = M_DOCUMENT->APPEND_CHILD( NEW_CHILD = L_DOM ).
IF W_RC IS INITIAL.
WRITE 'Ok'.
ELSE.
WRITE: 'Err =',
W_RC.
ENDIF.
CALL FUNCTION 'SDIXML_DOM_TO_XML'
EXPORTING
DOCUMENT = M_DOCUMENT
PRETTY_PRINT = ' '
IMPORTING
XML_AS_STRING = W_STRING
SIZE = W_SIZE
TABLES
XML_AS_TABLE = IT_XML
EXCEPTIONS
NO_DOCUMENT = 1
OTHERS = 2
IF SY-SUBRC = 0.
WRITE 'Ok'.
ELSE.
WRITE: 'Err =',
SY-SUBRC.
ENDIF.
LOOP AT IT_XML INTO XML_TAB-D.
APPEND XML_TAB.
ENDLOOP.
CALL FUNCTION 'WS_DOWNLOAD'
EXPORTING
BIN_FILESIZE = W_SIZE
FILENAME = GK_RUTA
FILETYPE = 'BIN'
TABLES
DATA_TAB = XML_TAB
FIELDNAMES =
EXCEPTIONS
FILE_OPEN_ERROR = 1
FILE_WRITE_ERROR = 2
INVALID_FILESIZE = 3
INVALID_TYPE = 4
NO_BATCH = 5
UNKNOWN_ERROR = 6
INVALID_TABLE_WIDTH = 7
GUI_REFUSE_FILETRANSFER = 8
CUSTOMER_ERROR = 9
NO_AUTHORITY = 10
OTHERS = 10
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. " CONVERT_XML
Thanks and Regards,
P.Madhusudhan Raju, -
How to store array of data into a single row of table ,using any of Stmts
HI Friends,
Based on my requirements ,i have retrived a set of data from a XXX.jsp page using a request.getParameter() and stored into single dimenssional array . Now i am paassing that array to JAVA class to store a into some table .
In JSP page users can add text boxes dynamically based on his intrest then those attributes will store in table .it means table attributes are not conatant , it table attributes may change at any time when user adds any textboxs or any fields on JSP page ....thats my module ..
Now i wanted to store all array of data into Table in a single row .......thats is my requirements .
How can we use prepareStatement and Statement to store array of results intoo table row ...on each iteration i wanted to store array of results into table atributes ..It means entire array of results should to into table row at time .....coule any one write sytax ,how we do this...
could any one suggest me stps that i can impliment ......?....please reply ASAPWell ..you code can be works for constant number of attributes in table .oopss here my requirement is table attributes not fixed ,we cant put constant number of place holder(? ) in a statement ,because those are not fixed ,
Let me explain here :
i am doing in that way only. As i mentioned you Table attributes are not constant .It may very if users add any fields dynamically on JSP page .If users have option to add any text box on Jsp page ,then that attribute will store in table as a attribute .
Now i amable fetching the all dyamic form data and stored in a Result Array below ...in this iteration all form result data are from jsp page as suggestion form ,it should stored in table in single row on corrsponding attribtes ......next time when users fills FROM ,then those data i am fetching and storing in a Result Array as below and need to store in corrsponding table attributes in a single row ....
for(int i=0;i<result.length;i++)
System.out.println(result);
pst3=connection.prepareStatement("insert into *emprecord* values(?)");
if(!result[i].equals(""))
System.out.println(result[i]);
pst3.setString(1,result[i]);
pst3.executeUpdate();
Thnks in advance ....let me know the the way we can store dynamic form data into dyanamic table ... -
How to download internal table data into xml file?
Hi,
Experts,
I have downloaded internal table data into XLS format using GUI_DOWNLOAD Function module, But i didn't Know how to download internal table data into XML format please post some ideas/inputs on this issue.
Thank you,
Shabeer ahmed.check this
data : gd_repid type sy-repid.
GD_REPID = SY-REPID.
DATA : L_DOM TYPE REF TO IF_IXML_ELEMENT,
M_DOCUMENT TYPE REF TO IF_IXML_DOCUMENT,
G_IXML TYPE REF TO IF_IXML,
W_STRING TYPE XSTRING,
W_SIZE TYPE I,
W_RESULT TYPE I,
W_LINE TYPE STRING,
IT_XML TYPE DCXMLLINES,
S_XML LIKE LINE OF IT_XML,
W_RC LIKE SY-SUBRC.
DATA: XML TYPE DCXMLLINES.
DATA: RC TYPE SY-SUBRC,
BEGIN OF XML_TAB OCCURS 0,
D LIKE LINE OF XML,
END OF XML_TAB.
data : l_element type ref to if_ixml_element,
xml_ns_prefix_sf type string,
xml_ns_uri_sf type string.
CLASS CL_IXML DEFINITION LOAD.
G_IXML = CL_IXML=>CREATE( ).
CHECK NOT G_IXML IS INITIAL.
M_DOCUMENT = G_IXML->CREATE_DOCUMENT( ).
CHECK NOT M_DOCUMENT IS INITIAL.
CALL FUNCTION 'SDIXML_DATA_TO_DOM'
EXPORTING
NAME = 'REPAIRDATA'
DATAOBJECT = IT_FINAL_LAST1[]
IMPORTING
DATA_AS_DOM = L_DOM
CHANGING
DOCUMENT = M_DOCUMENT
EXCEPTIONS
ILLEGAL_NAME = 1
OTHERS = 2.
CHECK NOT L_DOM IS INITIAL.
W_RC = M_DOCUMENT->APPEND_CHILD( NEW_CHILD = L_DOM ).
*Start of code for Header
* namespace
t_mnr = sy-datum+4(2).
CALL FUNCTION 'IDWT_READ_MONTH_TEXT'
EXPORTING
LANGU = 'E'
MONTH = t_mnr
IMPORTING
T247 = wa_t247
concatenate sy-datum+6(2)
wa_t247-ktx
sy-datum(4) into t_var1.
concatenate sy-uzeit(2)
sy-uzeit+2(2)
sy-uzeit+4(2) into t_var2.
clear : xml_ns_prefix_sf,
xml_ns_uri_sf.
l_element = m_document->get_root_element( ).
xml_ns_prefix_sf = 'TIMESTAMP'.
concatenate t_var1 t_var2 into xml_ns_uri_sf separated by space.
clear : t_var1,
t_var2,
t_mnr,
wa_t247.
l_element->set_attribute( name = xml_ns_prefix_sf
namespace = ' '
value = xml_ns_uri_sf ).
clear : xml_ns_prefix_sf,
xml_ns_uri_sf.
xml_ns_prefix_sf = 'FILECREATOR'.
xml_ns_uri_sf = 'SAP'.
l_element->set_attribute( name = xml_ns_prefix_sf
namespace = ' '
value = xml_ns_uri_sf ).
clear : xml_ns_prefix_sf,
xml_ns_uri_sf.
xml_ns_prefix_sf = 'CLAIMGROUP'.
xml_ns_uri_sf = '1'.
l_element->set_attribute( name = xml_ns_prefix_sf
namespace = ' '
value = xml_ns_uri_sf ).
clear : xml_ns_prefix_sf,
xml_ns_uri_sf.
xml_ns_prefix_sf = 'CLAIMTYPES'.
xml_ns_uri_sf = 'W'.
l_element->set_attribute( name = xml_ns_prefix_sf
namespace = ' '
value = xml_ns_uri_sf ).
*End of Code for Header
CALL FUNCTION 'SDIXML_DOM_TO_XML'
EXPORTING
DOCUMENT = M_DOCUMENT
IMPORTING
XML_AS_STRING = W_STRING
SIZE = W_SIZE
TABLES
XML_AS_TABLE = IT_XML
EXCEPTIONS
NO_DOCUMENT = 1
OTHERS = 2.
LOOP AT IT_XML INTO XML_TAB-D.
APPEND XML_TAB.
ENDLOOP.
*Start of Code for File name
concatenate p_file
'\R'
'000_119481'
sy-datum+6(2) sy-datum+4(2) sy-datum+2(2)
sy-uzeit(2) sy-uzeit+2(2) sy-uzeit(2) '.xml' into p_file.
*End of Code for File name
CALL FUNCTION 'WS_DOWNLOAD'
EXPORTING
BIN_FILESIZE = W_SIZE
FILENAME = p_file
FILETYPE = 'BIN'
TABLES
DATA_TAB = XML_TAB
EXCEPTIONS
OTHERS = 10.
IF SY-SUBRC = 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF. -
I'm trying to create a class to build an XML file from data that I'm setting inside the class. I'm using a ContentHandler to put the data into a SAXParser. Now I need to use a transformer to put the data into XML. My problem is, it's calling for an InputSource as a SAXSource and I'm not sure how to get the data from the ContentHandler to an InputSource. Can anyone help me with this? I've tried the tutorial and it wasn't much help.
Linda ShafferYou are sending a stream of SAX events to your ContentHandler? By which I mean, you are calling its startElement() method and so on? If so, then here's some code that I use to transform that virtual XML via XSLT:TransformerHandler handler = // a TransformerHandler using that XSLT
handler.setResult(new StreamResult(whereverYourOutputGoes));
SAXParserFactory spf = SAXParserFactory.newInstance();
XMLReader reader = spf.newSAXParser().getXMLReader();
reader.setContentHandler(handler);
reader.setProperty("http://xml.org/sax/properties/lexical-handler", handler);
reader.setFeature("http://xml.org/sax/features/namespaces", true);
reader.setFeature("http://xml.org/sax/features/namespace-prefixes", false);That's all. The TransformerHandler object is the one on which you should be calling startDocument() and so on; as soon as you call endDocument(), the transformation and output will take place.
If you aren't transforming, just outputting, then use an identity TransformerHandler. -
How to write data into xml through web service
Hi,
I have a requirement to write the data into xml through a web service .send me related links and sample code if any.hi kiran,
write the data into xml : We need suitable set of java Beans for handling WebService Data.
However, there are cases when you may prefer an alternate mapping, or when there just isn't a well-defined mapping for your particular schema construct (xsd:choice is a common example). For these cases, IBM® WebSphere® has introduced a new feature called Custom Data Binding that allows you to integrate alternate data binding technologies like JAX-B, EMF/SDO and XML beans, as well to define your own XML schema to Java mappings. This article provides an overview of the technology and how you can get started integrating it into your application.
GO THru THis Links :
http://www-128.ibm.com/developerworks/websphere/library/
techarticles/0601_gallardo/0601_gallardo.html.
Hope It Helps.
Thanks
Varun CN -
Outbound oracle data into xml file
Hi Odie,
Your previous inputs for xml inbound was working fine, in the similar way now I need outbound the oracle apps data into .xml file format. For that I've written one sample script like this. I thought of making use of the utl_file option in Oracle apps.
declare
l_log_handle UTL_FILE.FILE_TYPE;
l_log_name varchar2(50);
l_path_2 varchar2(40);
l_global_file varchar2(50);
l_time number:=1;
cursor cur1 is
select xmltype(cursor(select * from fnd_menus where rownum <101)) a from dual;
--select menu_id from fnd_menus where rownum<100;
begin
BEGIN
SELECT DECODE (INSTR (VALUE, ','),
0, VALUE,
SUBSTR (VALUE, 1, (INSTR (VALUE, ',', 1)) - 1)
INTO l_path_2
FROM v$parameter
WHERE NAME = 'utl_file_dir';
EXCEPTION
WHEN OTHERS THEN
dbms_output.put_line('Error while getting Unix Path ' || SQLERRM);
END;
l_log_name := 'XGBIZ_'||TO_CHAR (SYSDATE, 'YYMMDD')||l_time;
l_log_name := CONCAT(l_log_name,'.xml');
l_global_file := l_log_name;
l_log_handle := UTL_FILE.FOPEN(l_path_2,l_log_name,'W');
for cur2 in cur1 loop
UTL_FILE.PUT_LINE(l_log_handle, cur2);
end loop;
utl_file.fclose_all;
EXCEPTION
WHEN UTL_FILE.INVALID_OPERATION THEN
dbms_output.put_line('Invalid Operation For '|| l_global_file);
UTL_FILE.FCLOSE_ALL;
WHEN UTL_FILE.INVALID_PATH THEN
dbms_output.put_line('Invalid Path For '|| l_global_file);
UTL_FILE.FCLOSE_ALL;
WHEN UTL_FILE.INVALID_MODE THEN
dbms_output.put_line('Invalid Mode For '|| l_global_file);
UTL_FILE.FCLOSE_ALL;
WHEN UTL_FILE.INVALID_FILEHANDLE THEN
dbms_output.put_line('Invalid File Handle '|| l_global_file);
UTL_FILE.FCLOSE_ALL;
WHEN UTL_FILE.WRITE_ERROR THEN
dbms_output.put_line('Invalid Write Error '|| l_global_file);
UTL_FILE.FCLOSE_ALL;
WHEN UTL_FILE.READ_ERROR THEN
dbms_output.put_line('Invalid Read Error '|| l_global_file);
UTL_FILE.FCLOSE_ALL;
WHEN UTL_FILE.INTERNAL_ERROR THEN
dbms_output.put_line('Internal Error');
UTL_FILE.FCLOSE_ALL;
WHEN OTHERS THEN
dbms_output.put_line('Other Error '||'SQL CODE: '||SQLCODE||' Messg: '||SQLERRM);
UTL_FILE.FCLOSE_ALL;
end;
when running this script I am getting error
ERROR at line 30:
ORA-06550: line 30, column 2:
PLS-00306: wrong number or types of arguments in call to 'PUT_LINE'
ORA-06550: line 30, column 2:
PL/SQL: Statement ignored
if in the cursor declaration happen to use 'select menu_id from fnd_menus ' a plain record then it is successfully creating.
If tried again revert to actual select statement ' select xmltype(cursor(select * from fnd_menus where rownum <101)) a from dual'
then its erring out as above said.
Please give me your valuable inputs in this regard.
Thanks & Regards
NagendraHi,
There are multiple ways to generate XML documents from relational data.
Here are some :
-- SQL/XML functions : XMLElement, XMLAgg, XMLAttributes etc.
-- DBMS_XMLGEN package
select dbms_xmlgen.getXML('SELECT * FROM scott.emp')
from dual;-- XMLType constructor over a REF CURSOR (the one you chose)
select xmlserialize(document
xmltype(
cursor(
select *
from scott.emp
as clob
from dual;-- From a DBUriType
select xmlserialize(document
dburitype('/SCOTT/EMP').getXML()
as clob
from dual;-- From XQuery using ora:view function
select xmlserialize(document
xmlquery('<ROWSET>{ora:view("SCOTT","EMP")}</ROWSET>' returning content)
as clob indent size = 1
from dual;If a column is NULL in the result set, those methods (except XMLElement) won't create the corresponding element.
There's an option available for the XQuery method, but only in version 11.2.
So if you want to output empty elements, you'll have to use DBMS_XMLGEN with setNullHandling method :
DECLARE
ctx DBMS_XMLGEN.ctxHandle;
v_out CLOB;
rc SYS_REFCURSOR;
BEGIN
OPEN rc FOR
SELECT *
FROM scott.emp
ctx := DBMS_XMLGEN.newContext(rc);
DBMS_XMLGEN.setNullHandling(ctx, DBMS_XMLGEN.EMPTY_TAG);
v_out := DBMS_XMLGEN.getXML(ctx);
DBMS_XMLGEN.closeContext(ctx);
CLOSE rc;
DBMS_XSLPROCESSOR.clob2file(v_out, 'TEST_DIR', 'test_out.xml');
END;
I thought of making use of the utl_file option in Oracle apps.You could, but you might find DBMS_XSLPROCESSOR.clob2file procedure more convenient for that (see above).
All you have to do is serializing the XML in a CLOB variable, and call the procedure.
WHERE NAME = 'utl_file_dir';The "utl_file_dir" init. parameter is deprecated since 10g, use directory objects instead. -
Converting Flat File data into XML
Hi Experts,
Consider the message type of the SENDER system and flat file data
<dt_sender>
<root>
<header1> 0..1
<f1>
<f2>
<f3>
<header2> 0..1
<f4>
<f5>
<f6>
<item> 1..unbounded
<f7>
<f8>
<f9>
<f10>
<f11>
<f12>
</item>
abc def ghi jkl mno pqr
123 123 123 123 123 123
456 456 456 456 456 456
how to convert the flat file data into following XML data. please note that each field value is separated by TAB delimeter...wht parameters shld b used
<root>
<Header1>
<f1>abc</f1>
<f2>def</f2>
<f3>ghi</f3>
</Header1>
<Header2>
<f4>jkl</f4>
<f5>mno</f5>
<f6>pqr</f6>
</Header1>
<item>
<f7>123</f7>
<f8>123</f8>
<f9>123</f9>
<f10>123</f10>
<f11>123</f11>
<f12>123</f12>
<f7>456</f7>
<f8>456</f8>
<f9>456</f9>
<f10>456</f10>
<f11>456</f11>
<f12>456</f12>
</item>
points will be given to the correct answers
Thanks in advance.
FAisal
Edited by: Abdul Faisal on Feb 29, 2008 5:53 AMFaisal,
When you read the multiple recordset strucutre file then each record in txt file should have an header from which you can identiy which segment it should go.. and you identiy it by using the keyfiledValue in file adapter
<root>
<header1> 0..1
<f1>
<f2>
<f3>
<header2> 0..1
<f4>
<f5>
<f6>
<item> 1..unbounded
<f7>
<f8>
<f9>
<f10>
<f11>
<f12>
</item>
for this input file
abc def ghi jkl mno pqr
123 123 123 123 123 123
456 456 456 456 456 456
abc def ghi can be read using the file adater to header 1 usinfg key field value, but using the same file adapter you cannt put GHI into header2.
else you should read whole row abc def ghi jkl mno pqr in single filed and write an UDF to split data to header1 and Header 2
similarly you have to take care for item records also
if your inout file is something like this
abc def ghi
jkl mno pqr
123 123 123 123 123 123
456 456 456 456 456 456
abc identifies to Header 1
JKL for Header 2 so on...
read the whole line in single field and write UDF to Split to header 1 and header 2 similary for item. -
How to convert Binary Data into XML ???
I am calling the getTaskInfo method of TaskManagerService class using Web Service API.
The result includes the formdata in two formats:
1. Binary content of the form
2. Remote URL of the form data
I have to find a value of a particular field using one of the above information.
I am unable to convert the binary data to XML directly. I have also tried fetch the document based on remoteURL parameter which is also not working.
Any suggestions are highly appreciated.
Thanks
NithHi Steffen,
I found the same solution and fixed the issue long time back. Just forgot to close this forum topic.
Thanks for your knowledge sharing.
Nith -
Exporting xmltype table data into xml/txt file
I want to export data stored in oracle as xmltype table into xml format file.
I want to use alternatives to the method shown below as my xml file is large.
set long 10000000
spool c:\\StudentXMLJan08.xml
SELECT
XMLElement("Student",
XMLForest(s.studentid "studentid",
s.firstname "firstname",
s.lastname "surname"),
XMLElement("enrollments",
(SELECT XMLAGG(
XMLForest(sc.coursecode "courseid"))
FROM studentcourse sc
WHERE sc.studentid = s.studentid
and sc.is_approved='Y'
and sc.takenyear='2008'
and sc.takenterm='1')))
FROM student s
where s.statuscode in (select studentstatuscode from studentstatus where studentstatusactive=1)
order by s.studentid;
spool off
please help, thank youHow's this one for size
SQL> create or replace view DEPARTMENT_XML of xmltype
2 with object id
3 (
4 'DEPARTMENT'
5 )
6 as
7 select xmlElement
8 (
9 "Departments",
10 (
11 select xmlAgg
12 (
13 xmlElement
14 (
15 "Department",
16 xmlAttributes( d.DEPARTMENT_ID as "DepartmentId"),
17 xmlElement("Name", d.DEPARTMENT_NAME),
18 xmlElement
19 (
20 "Location",
21 xmlForest
22 (
23 STREET_ADDRESS as "Address", CITY as "City", STATE_PROVINCE as "State",
24 POSTAL_CODE as "Zip",COUNTRY_NAME as "Country"
25 )
26 ),
27 xmlElement
28 (
29 "EmployeeList",
30 (
31 select xmlAgg
32 (
33 xmlElement
34 (
35 "Employee",
36 xmlAttributes ( e.EMPLOYEE_ID as "employeeNumber" ),
37 xmlForest
38 (
39 e.FIRST_NAME as "FirstName", e.LAST_NAME as "LastName", e.EMAIL as "EmailAddre
ss",
40 e.PHONE_NUMBER as "Telephone", e.HIRE_DATE as "StartDate", j.JOB_TITLE as "Job
Title",
41 e.SALARY as "Salary", m.FIRST_NAME || ' ' || m.LAST_NAME as "Manager"
42 ),
43 xmlElement ( "Commission", e.COMMISSION_PCT )
44 )
45 )
46 from HR.EMPLOYEES e, HR.EMPLOYEES m, HR.JOBS j
47 where e.DEPARTMENT_ID = d.DEPARTMENT_ID
48 and j.JOB_ID = e.JOB_ID
49 and m.EMPLOYEE_ID = e.MANAGER_ID
50 )
51 )
52 )
53 )
54 from HR.DEPARTMENTS d, HR.COUNTRIES c, HR.LOCATIONS l
55 where d.LOCATION_ID = l.LOCATION_ID
56 and l.COUNTRY_ID = c.COUNTRY_ID
57 )
58 )
59 from dual
60 /
View created.
SQL> create or replace trigger DEPARTMENT_DML
2 instead of INSERT or UPDATE or DELETE
3 on DEPARTMENT_XML
4 begin
5 null;
6 end;
7 /
Trigger created.
SQL> declare
2 cursor getDepartments is
3 select ref(d) XMLREF
4 from DEPARTMENT_XML d;
5 res boolean;
6 targetFolder varchar2(1024) := '/public/Departments';
7 begin
8 if dbms_xdb.existsResource(targetFolder) then
9 dbms_xdb.deleteResource(targetFolder,dbms_xdb.DELETE_RECURSIVE_FORCE);
10 end if;
11 res := dbms_xdb.createFolder(targetFolder);
12 for dept in getDepartments loop
13 res := DBMS_XDB.createResource(targetFolder || '/Departments.xml', dept.XMLREF);
14 end loop;
15 end;
16 /
PL/SQL procedure successfully completed.
SQL> select path
2 from path_view
3 where equals_path(RES,'/public/Departments/Departments.xml') = 1
4 /
PATH
/public/Departments/Departments.xml
SQL> select xdburitype('/public/Departments/Departments.xml').getXML()
2 from dual
3 /
XDBURITYPE('/PUBLIC/DEPARTMENTS/DEPARTMENTS.XML').GETXML()
<Departments>
<Department DepartmentId="60">
<Name>IT</Name>
<Location
SQL> quit
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
C:\Temp>ftp localhost
Connected to mdrake-lap.
220- mdrake-lap
Unauthorised use of this FTP server is prohibited and may be subject to civil and criminal prosecution.
220 mdrake-lap FTP Server (Oracle XML DB/Oracle Database) ready.
User (mdrake-lap:(none)): SCOTT
331 pass required for SCOTT
Password:
230 SCOTT logged in
ftp> cd /public/Departments
250 CWD Command successful
ftp> ls -l
200 EPRT Command successful
150 ASCII Data Connection
-rw-r--r-- 1 SCOTT oracle 0 NOV 10 20:18 Departments.xml
226 ASCII Transfer Complete
ftp: 71 bytes received in 0.01Seconds 7.10Kbytes/sec.
ftp> get Departments.xml -
200 EPRT Command successful
150 ASCII Data Connection
<Departments><Department DepartmentId="60"><Name>IT</Name><Location><Address>2014 Jabberwocky Rd</Address><City>Southlak
e</City><State>Texas</State><Zip>26192</Zip><Country>United States of America</Country></Location><EmployeeList><Employe
e employeeNumber="103"><FirstName>Alexander</FirstName><LastName>Hunold</LastName><EmailAddress>AHUNOLD</EmailAddress><T
elephone>590.423.4567</Telephone><StartDate>2006-01-03</StartDate><JobTitle>Programmer</JobTitle><Salary>9000</Salary><M
anager>Lex De Haan</Manager><Commission></Commission></Employee><Employee employeeNumber="105"><FirstName>David</FirstNa
me><LastName>Austin</LastName><EmailAddress>DAUSTIN</EmailAddress><Telephone>590.423.4569</Telephone><StartDate>2005-06-
25</StartDate><JobTitle>Programmer</JobTitle><Salary>4800</Salary><Manager>Alexander Hunold</Manager><Commission></Commi
ssion></Employee><Employee employeeNumber="106"><FirstName>Valli</FirstName><LastName>Pataballa</LastName><EmailAddress>
VPATABAL</EmailAddress><Telephone>590.423.4560</Telephone><StartDate>2006-02-05</StartDate><JobTitle>Programmer</JobTitl
e><Salary>4800</Salary><Manager>Alexander Hunold</Manager><Commission></Commission></Employee><Employee employeeNumber="
107"><FirstName>Diana</FirstName><LastName>Lorentz</LastName><EmailAddress>DLORENTZ</EmailAddress><Telephone>590.423.556
7</Telephone><StartDate>2007-02-07</StartDate><JobTitle>Programmer</JobTitle><Salary>4200</Salary><Manager>Alexander Hun
old</Manager><Commission></Commission></Employee><Employee employeeNumber="104"><FirstName>Bruce</FirstName><LastName>Er
nst</LastName><EmailAddress>BERNST</EmailAddress><Telephone>590.423.4568</Telephone><StartDate>2007-05-21</StartDate><Jo
bTitle>Programmer</JobTitle><Salary>6000</Salary><Manager>Alexander Hunold</Manager><Commission></Commission></Employee>
</EmployeeList></Department><Department DepartmentId="50"><Name>Shipping</Name><Location><Address>2011 Interiors Blvd</A
ddress><City>South San Francisco</City><State>California</State><Zip>99236</Zip><Country>United States of America</Count
ry></Location><EmployeeList><Employee employeeNumber="120"><FirstName>Matthew</FirstName><LastName>Weiss</LastName><Emai
lAddress>MWEISS</EmailAddress><Telephone>650.123.1234</Telephone><StartDate>2004-07-18</StartDate><JobTitle>Stock Manage
r</JobTitle><Salary>8000</Salary><Manager>Steven King</Manager><Commission></Commission></Employee><Employee employeeNum
ber="122"><FirstName>Payam</FirstName><LastName>Kaufling</LastName><EmailAddress>PKAUFLIN</EmailAddress><Telephone>650.1
23.3234</Telephone><StartDate>2003-05-01</StartDate><JobTitle>Stock Manager</JobTitle><Salary>7900</Salary><Manager>Stev
en King</Manager><Commission></Commission></Employee><Employee employeeNumber="121"><FirstName>Adam</FirstName><LastName
Fripp</LastName><EmailAddress>AFRIPP</EmailAddress><Telephone>650.123.2234</Telephone><StartDate>2005-04-10</StartDate><JobTitle>Stock Manager</JobTitle><Salary>8200</Salary><Manager>Steven King</Manager><Commission></Commission></Employee
<Employee employeeNumber="124"><FirstName>Kevin</FirstName><LastName>Mourgos</LastName><EmailAddress>KMOURGOS</EmailAddress><Telephone>650.123.5234</Telephone><StartDate>2007-11-16</StartDate><JobTitle>Stock Manager</JobTitle><Salary>5800<
/Salary><Manager>Steven King</Manager><Commission></Commission></Employee><Employee employeeNumber="123"><FirstName>Shan
ta</FirstName><LastName>Vollman</LastName><EmailAddress>SVOLLMAN</EmailAddress><Telephone>650.123.4234</Telephone><Start
Date>2005-10-10</StartDate><JobTitle>Stock Manager</JobTitle><Salary>6500</Salary><Manager>Steven King</Manager><Commiss
ion></Commission></Employee><Employee employeeNumber="128"><FirstName>Steven</FirstName><LastName>Markle</LastName><Emai
lAddress>SMARKLE</EmailAddress><Telephone>650.124.1434</Telephone><StartDate>2008-03-08</StartDate><JobTitle>Stock Clerk
</JobTitle><Salary>2200</Salary><Manager>Matthew Weiss</Manager><Commission></Commission></Employee><Employee employeeNu
mber="127"><FirstName>James</FirstName><LastName>Landry</LastName><EmailAddress>JLANDRY</EmailAddress><Telephone>650.124
.1334</Telephone><StartDate>2007-01-14</StartDate><JobTitle>Stock Clerk</JobTitle><Salary>2400</Salary><Manager>Matthew
Weiss</Manager><Commission></Commission></Employee><Employee employeeNumber="126"><FirstName>Irene</FirstName><LastName>
Mikkilineni</LastName><EmailAddress>IMIKKILI</EmailAddress><Telephone>650.124.1224</Telephone>
<StartDate>2002-06-07</St
artDate><JobTitle>Public Relations Representative</JobTitle><Salary>10000</Salary><Manager>Neena Kochhar</Manager><Commi
ssion></Commission></Employee></EmployeeList></Department></Departments>226 ASCII Transfer Complete
ftp: 40392 bytes received in 0.08Seconds 480.86Kbytes/sec.
ftp> -
Converting an sap file output program into xml output
Hi,
I have developed a program from which i am able to generate outptut as a file. Since this file is going to be used by the third party system, user has come back asking me to generate an conversion program into xml of the file output.
Since i have not handled previously about generating the xml conversion program. Please let me know how to do this or if you could provide me the sample program it will be great.
Thanks in advance.
Sunil KumarHello
Just for example:
data: itab type standard table of sflight.
data: xml_out type string,xmltab type swbhtmltable.
select * from sflight into table itab.
call transformation ('ID')
source tab = itab[]
result xml xml_out.
call function 'SWA_STRING_TO_TABLE'
exporting
character_string = xml_out
importing
character_table = xmltab.
if sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
endif.
call function 'GUI_DOWNLOAD'
exporting
filetype = 'BIN'
filename = 'C:\xmlfile.xml'
tables
data_tab = xmltab.
P.s. search SDN for CALL TRANSFORMATION -
Converting a LOT of flat data into a relational structure
We have a staging table which will contain approximately 1.7 million rows of data and over 100 columns. The table is used to hold customer data which has been extracted from one database and cleaned/de-duped/etc.
Each row in the table holds a complete set of data for one customer. We need to chop up that set of data into small sets which will be inserted into a fully relational customer schema.
One customer could have more than one row of data in the staging database. The duplication is there to preserve customer history (addresses, for example). When processing each row of data into the target schema, we need to establish whether it's a new record (insert), modification of existing data (update) or obsolete data (delete).
There will be one column which contains that action as an instruction - I, U or D. We'll be handling each row slightly differently based on the instruction. Records with a D instruction will be marked as obsolete rather than being deleted.
After the initial load of approximately 1.7 million rows, the script will be scheduled to run many times a day (assume at least once per hour, if not more often) and processing about 10,000 records on each run.
We also need to audit this process. The audit should contain a unique ID for the customer, the instruction performed and a timestamp.
We are going to write this as a stored procedure in an Oracle 10g database.
Thank you for reading this far.
I would be very grateful for any suggestions of a good approach to solving this problem. Thank you.It sounds like you have a basic 'extract-transform-load' requirement in which the 'extract' portion is already being handled by a staging table.
Nearly any of the 'intro to warehouse' books that contains a chapter on ETL will take you the next step. The requirements are certainly within the capabilities of Oracle10g on whichever platform you decide to run this. And Warehouse Builder certainly has the ability to 'simplify' some of the processes you need.
I do encourage you to learn about the MERGE command. And you could review the Concepts manual and the Database Administrator's manual for the details about auditing.
10K records in an hour should be reasonable, as long as you don't waste your machine using some 3GL programming language. Do as much as possible in sets of records. If this doesn;t make sense, read 'The Art of SQL' and <a href="http://www.amazon.ca/exec/obidos/ASIN/0120887975[SQL Programming Style[/url"></a>
Maybe you are looking for
-
Hi, Is it possible to handle errors in LSMW if so how? Advantages of LSMW over Function Module. Is it possible to create multiple structures in LSMW to accept multiple Flat files. Thanks in Advance.
-
I have internet service on iMac but cannot get connection for Blu ray with airport express.
Why am I not getting internet connection for blu ray on tv with airport express?
-
Two semi-serious issues with 21.5" i5 iMac...
1. The AirPort internet connection stalls out. When I'm using Safari or Chrome it just acts like the computer isn't connected to the internet. Sometimes the upper-right icon drops to two bars when this happens (it's usually five), and sometimes it
-
Embed .mp3 in .pdf without controller?
Whenever I embed an .mp3 in an interactive .pdf, a gray "controller" box appears as soon as the sound is triggered. And once the sound is triggered, the box cannot be made to go away without closing and reopening the pdf. I have no use at all for the
-
I am seeing double...double files
Hello, I can't figurer out what to do. My remote site and my local site are generating doubles of folders in different levels of my site. I am getting so confused I can hardly handle it. I have inclosed a link to what my dreamweaver files window look