Xml formated xml query
I'm looking for a stored procedure (Oracle8i) like:
function getXML(xmlQuery in varchar2) return xmlResults;
The xmlQuery string will be formatted something like:
<Query>
<ColLst>SSN, LAST_NAME, PHONE_NUM<ColLst/>
<Table>EMPLOYEE<Table/>
<Where>SSN='123456789'<Where/>
<Query/>
And the return will look something like:
<EMPLOYEE Row="1">
<SSN>123456789<SSN/>
<LAST_NAME>Glasgow<LAST_NAME/>
<PHONE_NUM>336-657-8309<PHONE_NUM/>
<EMPLOYEE/>
Hopefully it would accept a ColLst value of "*".
Hopefully it would handle mutiple query requests in the single XML document.
Thanks,
Mickey Glasgow
[email protected]
[email protected]
In 11g XMLSERIALIZE will do the job:
SQL> select xmlserialize(content xmltype('<a><b><c/></b></a>') indent) xml
from dual
XML
<a>
<b>
<c/>
</b>
</a>
1 row selected.
Similar Messages
-
Compare two tables that are in XML format (xml diff)
I have two tables in XML-format and need to list differences in
1. Structure and/or
2. Content
SAP offers CL_SXIVERI_XML_COMPARATOR, but this is too simplistic for the requirement.
Any ideas or suggestions will be appreciated. Thank you!Hi Adrian,
You can convert the data from the XML file to an internal table. Once the data is in the internal table you can easily paly with it
Refer to this Wiki for details: [https://wiki.sdn.sap.com/wiki/display/ABAP/UploadXMLfiletointernal+table].
You can also check Simple Transformations as well.
Cheers,
Suhas -
Data in XML format (XML files) to BW?
Hi,
My customer is interested in loading data to BW (from 3rd party system) in XML format. Are there any advantages of doing this (compared to traditional ascii files)? How about disadvantages (BW version is 3.5) ?. How to get started with this one, I noticed there is a possibility to create a XML data source. Is this able to take XML files into BW or what?.
Any help highly appreciated!Hi Jimmy,
Have a look:
http://help.sap.com/saphelp_nw04/helpdata/en/9b/821140d72dc442e10000000a1550b0/content.htm
http://help.sap.com/saphelp_nw04/helpdata/en/55/014e3c97f6bb3ee10000000a114084/content.htm
Hope it Helps
Srini -
How to get the metadata (in xml format) of all the fileds in SQl query ?
Good day ,
I am using the dbms_xmlgen.getXMLfunction to get the result of any query in xml format.
With this XML I also want the metadata information about all the fields used in the query (passed to getXML function). Is it possible and how can I achieve this.
I tried to Google it but couldn't find any solution , it's easy to do it in java where I can get the resultset meta data from the resultset but I have to do it in Oracle function since I want the result in xml format and want to use the oracle XML API.
You may think why I need metadata , the reason is the application will later use this information to sort the data contained in these fields according to their data type provided to.
Regards
Sajjad Ahmed ParachaHi,
Please always say which version of Oracle you're using (SELECT * FROM v$version).
With this XML I also want the metadata information about all the fields used in the query (passed to getXML function). Is it possible and how can I achieve this.It is possible but with a bit of effort.
I would use DBMS_SQL utility to parse the query, extract each column's description and then build a METADATA element with the required information.
Here's an example (11g) :
DECLARE
v_query varchar2(30) := 'select * from scott.emp';
v_cur integer;
v_desc_tab dbms_sql.desc_tab;
v_col_cnt number;
v_col_lst varchar2(4000);
v_xml_query varchar2(32767);
xml_metadata_coll xmlsequencetype := xmlsequencetype();
xml_metadata xmltype;
res clob;
BEGIN
v_cur := dbms_sql.open_cursor;
dbms_sql.parse(v_cur, v_query, dbms_sql.native);
dbms_sql.describe_columns(v_cur, v_col_cnt, v_desc_tab);
dbms_sql.close_cursor(v_cur);
for i in 1 .. v_col_cnt loop
if i > 1 then
v_col_lst := v_col_lst || ', ';
end if;
v_col_lst := v_col_lst || v_desc_tab(i).col_name;
xml_metadata_coll.extend;
select xmlelement("COLUMN"
, xmlattributes(v_desc_tab(i).col_name as "name")
, xmlforest(
case v_desc_tab(i).col_type
when 1 then 'VARCHAR2'
when 2 then 'NUMBER'
when 12 then 'DATE'
when 180 then 'TIMESTAMP'
else 'UNKNOWN'
end as "DATATYPE"
, v_desc_tab(i).col_max_len as "MAX_LENGTH"
, v_desc_tab(i).col_precision as "PRECISION"
, v_desc_tab(i).col_scale as "SCALE"
into xml_metadata_coll(i)
from dual;
end loop;
v_xml_query :=
'SELECT XMLSerialize(document
XMLElement("ROOT"
, :1
, XMLElement("ROWSET"
, XMLAgg(
XMLElement("ROW", XMLForest(' || v_col_lst || '))
) as clob indent
FROM ( ' || v_query || ')';
select xmlelement("METADATA", xmlagg(column_value))
into xml_metadata
from table(xml_metadata_coll)
execute immediate v_xml_query into res using xml_metadata;
dbms_output.put_line(res);
END;
/Ouput :
<ROOT>
<METADATA>
<COLUMN name="EMPNO">
<DATATYPE>NUMBER</DATATYPE>
<MAX_LENGTH>22</MAX_LENGTH>
<PRECISION>4</PRECISION>
<SCALE>0</SCALE>
</COLUMN>
<COLUMN name="ENAME">
<DATATYPE>VARCHAR2</DATATYPE>
<MAX_LENGTH>10</MAX_LENGTH>
<PRECISION>0</PRECISION>
<SCALE>0</SCALE>
</COLUMN>
<COLUMN name="JOB">
<DATATYPE>VARCHAR2</DATATYPE>
<MAX_LENGTH>9</MAX_LENGTH>
<PRECISION>0</PRECISION>
<SCALE>0</SCALE>
</COLUMN>
<COLUMN name="MGR">
<DATATYPE>NUMBER</DATATYPE>
<MAX_LENGTH>22</MAX_LENGTH>
<PRECISION>4</PRECISION>
<SCALE>0</SCALE>
</COLUMN>
<COLUMN name="HIREDATE">
<DATATYPE>DATE</DATATYPE>
<MAX_LENGTH>7</MAX_LENGTH>
<PRECISION>0</PRECISION>
<SCALE>0</SCALE>
</COLUMN>
<COLUMN name="SAL">
<DATATYPE>NUMBER</DATATYPE>
<MAX_LENGTH>22</MAX_LENGTH>
<PRECISION>7</PRECISION>
<SCALE>2</SCALE>
</COLUMN>
<COLUMN name="COMM">
<DATATYPE>NUMBER</DATATYPE>
<MAX_LENGTH>22</MAX_LENGTH>
<PRECISION>7</PRECISION>
<SCALE>2</SCALE>
</COLUMN>
<COLUMN name="DEPTNO">
<DATATYPE>NUMBER</DATATYPE>
<MAX_LENGTH>22</MAX_LENGTH>
<PRECISION>2</PRECISION>
<SCALE>0</SCALE>
</COLUMN>
</METADATA>
<ROWSET>
<ROW>
<EMPNO>7369</EMPNO>
<ENAME>SMITH</ENAME>
<JOB>CLERK</JOB>
<MGR>7902</MGR>
<HIREDATE>1980-12-17</HIREDATE>
<SAL>800</SAL>
<DEPTNO>20</DEPTNO>
</ROW>
<ROW>
<EMPNO>7499</EMPNO>
<ENAME>ALLEN</ENAME>
<JOB>SALESMAN</JOB>
<MGR>7698</MGR>
<HIREDATE>1981-02-20</HIREDATE>
<SAL>1600</SAL>
<COMM>300</COMM>
<DEPTNO>30</DEPTNO>
</ROW>
<ROW>
<EMPNO>7521</EMPNO>
<ENAME>WARD</ENAME>
<JOB>SALESMAN</JOB>
<MGR>7698</MGR>
<HIREDATE>1981-02-22</HIREDATE>
<SAL>1250</SAL>
<COMM>500</COMM>
<DEPTNO>30</DEPTNO>
</ROW>
<ROW>
<EMPNO>7566</EMPNO>
<ENAME>JONES</ENAME>
<JOB>MANAGER</JOB>
<MGR>7839</MGR>
<HIREDATE>1981-04-02</HIREDATE>
<SAL>2975</SAL>
<DEPTNO>20</DEPTNO>
</ROW>
<ROW>
<EMPNO>7654</EMPNO>
<ENAME>MARTIN</ENAME>
<JOB>SALESMAN</JOB>
<MGR>7698</MGR>
<HIREDATE>1981-09-28</HIREDATE>
<SAL>1250</SAL>
<COMM>1400</COMM>
<DEPTNO>30</DEPTNO>
</ROW>
<ROW>
<EMPNO>7698</EMPNO>
<ENAME>BLAKE</ENAME>
<JOB>MANAGER</JOB>
<MGR>7839</MGR>
<HIREDATE>1981-05-01</HIREDATE>
<SAL>2850</SAL>
<DEPTNO>30</DEPTNO>
</ROW>
<ROW>
<EMPNO>7782</EMPNO>
<ENAME>CLARK</ENAME>
<JOB>MANAGER</JOB>
<MGR>7839</MGR>
<HIREDATE>1981-06-09</HIREDATE>
<SAL>2450</SAL>
<DEPTNO>10</DEPTNO>
</ROW>
<ROW>
<EMPNO>7839</EMPNO>
<ENAME>KING</ENAME>
<JOB>PRESIDENT</JOB>
<HIREDATE>1981-11-17</HIREDATE>
<SAL>5000</SAL>
<DEPTNO>10</DEPTNO>
</ROW>
<ROW>
<EMPNO>7844</EMPNO>
<ENAME>TURNER</ENAME>
<JOB>SALESMAN</JOB>
<MGR>7698</MGR>
<HIREDATE>1981-09-08</HIREDATE>
<SAL>1500</SAL>
<COMM>0</COMM>
<DEPTNO>30</DEPTNO>
</ROW>
<ROW>
<EMPNO>7900</EMPNO>
<ENAME>JAMES</ENAME>
<JOB>CLERK</JOB>
<MGR>7698</MGR>
<HIREDATE>1981-12-03</HIREDATE>
<SAL>950</SAL>
<DEPTNO>30</DEPTNO>
</ROW>
<ROW>
<EMPNO>7902</EMPNO>
<ENAME>FORD</ENAME>
<JOB>ANALYST</JOB>
<MGR>7566</MGR>
<HIREDATE>1981-12-03</HIREDATE>
<SAL>3000</SAL>
<DEPTNO>20</DEPTNO>
</ROW>
<ROW>
<EMPNO>7934</EMPNO>
<ENAME>MILLER</ENAME>
<JOB>CLERK</JOB>
<MGR>7782</MGR>
<HIREDATE>1982-01-23</HIREDATE>
<SAL>1300</SAL>
<DEPTNO>10</DEPTNO>
</ROW>
</ROWSET>
</ROOT>A couple of comments :
<li> I handle only four datatypes here (VARCHAR2, NUMBER, DATE, TIMESTAMP). Of course you can add more.
The list of Oracle Type Number is available here : http://docs.oracle.com/cd/E11882_01/server.112/e26088/sql_elements001.htm#i54330
Starting with 11g (not sure which release), DBMS_SQL package also declares these numbers through named constants.
<li> I don't use DBMS_XMLGEN in this example. Instead I rebuild the query using SQL/XML functions and the list of columns that's just been described. -
Sample XML format that can be used to write a SELECT query
Hello,
I want to use and XML file in the scenario FILE to JDBC where i use the operation as SELECT in which i want to embbed an sql statemnet which is equivalent to
SELECT EMPNO, NAME FROM EMPLOYEE WHERE EMPNO>1
as in the form of XML format like,
<?xml version="1.0" encoding="UTF-8"?>
<ns0:MT_JDBC_SELECT_JDBC_REQ xmlns:ns0="http://JDBC_SELECT">
<STATEMENT>
<TABLENAME ACTION="SELECT">
<TABLE>EMPTEST</TABLE>
<ACCESS>
<EMPNO></EMPNO>
<NAME></NAME>
</ACCESS>
<KEY>
<EMPNO compareOperation="GT">1</EMPNO>
</KEY>
</TABLENAME>
</STATEMENT>
</ns0:MT_JDBC_SELECT_JDBC_REQ>
Can i do like this?
PLease help me out in using various conditions in the XML file formats like the above.
Thanks,
Soorya.Hello raj,
I would like to write the query in that format where i mentioned as,
<?xml version="1.0" encoding="UTF-8"?>
<ns0:MT_JDBC_SELECT_JDBC_REQ xmlns:ns0="http://JDBC_SELECT">
<STATEMENT>
<TABLENAME ACTION="SELECT">
<TABLE>EMPTEST</TABLE>
<ACCESS>
<EMPNO></EMPNO>
<NAME></NAME>
</ACCESS>
<KEY>
<EMPNO compareOperation="GT">1</EMPNO>
</KEY>
</TABLENAME>
</STATEMENT>
</ns0:MT_JDBC_SELECT_JDBC_REQ>
without giving clear SQL statement as you mentioned here like,
<ns0:MT_JDBC_SELECT_JDBC_REQ xmlns:ns0="http://JDBC_SELECT">
<STATEMENT>
<TABLENAME ACTION="SQL_QUERY">
<ACCESS>SELECT EMPNO, NAME FROM EMPLOYEE WHERE EMPNO > '$EMPNO$</ACCESS>
<KEY>
<EMPNO>1</EMPNO>
</KEY>
</TABLENAME>
</STATEMENT>
</ns0:MT_JDBC_SELECT_JDBC_REQ>
Thanks,
Soorya -
Need the output of a query in given XML format
I have a table as
create table t_cases (case_id number, pros_seq number, case_lname varchar2(100),
day_phone number, night_phone number, intl_phone number);
where case_id and pros_seq is the compound primary key.
The insert script to insert the data in the table is
insert into t_cases values(1, 1, 'test', 12, 23, 34);
insert into t_cases values(1, 2, 'test', 56, 67, 78);
commit;
Now from this table I need to query and fetch the data in the following xml format.
<case REPEATINGTYPE="PageList">
<rowdata REPEATINGINDEX="1">
<caseid>1</caseid>
<prosseq>1</prosseq>
<PhoneNumbers REPEATINGTYPE="PageList">
<rowdata REPEATINGINDEX="1">
<CountryCode>12</CountryCode>
<Type>Day</Type>
</rowdata>
<rowdata REPEATINGINDEX="2">
<CountryCode>23</CountryCode>
<Type>Night</Type>
</rowdata>
<rowdata REPEATINGINDEX="3">
<CountryCode>34</CountryCode>
<Type>International</Type>
</rowdata>
</PhoneNumbers>
</rowdata>
<rowdata REPEATINGINDEX="2">
<caseid>1</caseid>
<prosseq>2</prosseq>
<PhoneNumbers REPEATINGTYPE="PageList">
<rowdata REPEATINGINDEX="1">
<CountryCode>56</CountryCode>
<Type>Day</Type>
</rowdata>
<rowdata REPEATINGINDEX="2">
<CountryCode>67</CountryCode>
<Type>Night</Type>
</rowdata>
<rowdata REPEATINGINDEX="3">
<CountryCode>78</CountryCode>
<Type>International</Type>
</rowdata>
</PhoneNumbers>
</rowdata>
</case>
Please let me know how to do this.Like this...
select XMLELEMENT( "case", XMLATTRIBUTES ('PageList' as "RepeatingType")
,xmlagg(
xmlelement("rowdata", xmlattributes(pros_seq as "RepeatingIndex")
,xmlelement("caseid", case_id)
,xmlelement("prosseq", pros_seq)
,xmlelement("PhoneNumbers", xmlattributes('PageList' as "RepeatingType")
,xmlelement("rowdata", xmlattributes(1 as "RepeatingIndex")
,xmlelement("CountryCode", day_phone)
,xmlelement("Type", 'Day')
,xmlelement("rowdata", xmlattributes(2 as "RepeatingIndex")
,xmlelement("CountryCode", night_phone)
,xmlelement("Type", 'Night')
,xmlelement("rowdata", xmlattributes(3 as "RepeatingIndex")
,xmlelement("CountryCode", intl_phone)
,xmlelement("Type", 'International')
as x
from t_cases -
Need output of a query in given xml format.
I have a table as
create table t_cases (case_id number, pros_seq number, case_lname varchar2(100),
day_phone number, night_phone number, intl_phone number);
where case_id and pros_seq is the compound primary key.
The insert script to insert the data in the table is
insert into t_cases values(1, 1, 'test', 12, 23, 34);
insert into t_cases values(1, 2, 'test', 56, 67, 78);
commit;
Now from this table I need to query and fetch the data in the following xml format.
<case REPEATINGTYPE="PageList">
<rowdata REPEATINGINDEX="1">
<caseid>1</caseid>
<prosseq>1</prosseq>
<PhoneNumbers REPEATINGTYPE="PageList">
<rowdata REPEATINGINDEX="1">
<CountryCode>12</CountryCode>
<Type>Day</Type>
</rowdata>
<rowdata REPEATINGINDEX="2">
<CountryCode>23</CountryCode>
<Type>Night</Type>
</rowdata>
<rowdata REPEATINGINDEX="3">
<CountryCode>34</CountryCode>
<Type>International</Type>
</rowdata>
</PhoneNumbers>
</rowdata>
<rowdata REPEATINGINDEX="2">
<caseid>1</caseid>
<prosseq>2</prosseq>
<PhoneNumbers REPEATINGTYPE="PageList">
<rowdata REPEATINGINDEX="1">
<CountryCode>56</CountryCode>
<Type>Day</Type>
</rowdata>
<rowdata REPEATINGINDEX="2">
<CountryCode>67</CountryCode>
<Type>Night</Type>
</rowdata>
<rowdata REPEATINGINDEX="3">
<CountryCode>78</CountryCode>
<Type>International</Type>
</rowdata>
</PhoneNumbers>
</rowdata>
</case>
Please let me know how to do this.Like this...
select XMLELEMENT( "case", XMLATTRIBUTES ('PageList' as "RepeatingType")
,xmlagg(
xmlelement("rowdata", xmlattributes(pros_seq as "RepeatingIndex")
,xmlelement("caseid", case_id)
,xmlelement("prosseq", pros_seq)
,xmlelement("PhoneNumbers", xmlattributes('PageList' as "RepeatingType")
,xmlelement("rowdata", xmlattributes(1 as "RepeatingIndex")
,xmlelement("CountryCode", day_phone)
,xmlelement("Type", 'Day')
,xmlelement("rowdata", xmlattributes(2 as "RepeatingIndex")
,xmlelement("CountryCode", night_phone)
,xmlelement("Type", 'Night')
,xmlelement("rowdata", xmlattributes(3 as "RepeatingIndex")
,xmlelement("CountryCode", intl_phone)
,xmlelement("Type", 'International')
as x
from t_cases -
Can we generate the output of SQL Query in XML format ..
Hi Team,
Can we generate an XML doc for an SQL Query.
I've seen in SQL Server 2000.It is generating the output of an SQL Query in xml format.
select * from emp for xml auto
The output looks like
<emp EMPNO="7369" ENAME="SMITH" JOB="CLERK" MGR="7902" HIREDATE="1980-12-17T00:00:00" SAL="2800" DEPTNO="20"/><emp EMPNO="7370" ENAME="SMITH" JOB="CLERK" MGR="7902" HIREDATE="1980-12-17T00:00:00" SAL="2800" DEPTNO="10"/>Just a little bit of short hand.
Get the XML out of your database, via HTTP
Of course the easiest method is just to return an XMLType from a stored procedure and let the calling routine figure out what to do with it. Instead
of that way though, I'll show you how to do it via HTTP. It's all completely built into 10g and is super easy to use.
CREATE OR REPLACE VIEW emps_and_depts AS
SELECT e.employee_id AS "EmployeeId",
e.last_name AS "Name",
e.job_id AS "Job",
e.manager_id AS "Manager",
e.hire_date AS "HireDate",
e.salary AS "Salary",
e.commission_pct AS "Commission",
XMLFOREST (
d.department_id AS "DeptNo",
d.department_name AS "DeptName",
d.location_id AS "Location"
) AS "Dept"
FROM employees e, departments d
WHERE e.department_id = d.department_id
Some people hear web and immediately start salivating about security issues. Let me address that quickly. Just because you have the HTTP and/or
FTP servers running in the database, that does not mean you have a security problem. For one, I would hope your databases are behind a firewall.
Second, with the correct architecture (DMZ, app servers, etc) you can make this data available outside the firewall fairly transparently and third,
just because it's on the web does not mean the data MUST be available on the internet. This is a good way to make your data available on your
intranet. If you are worried about people INSIDE your firewall, that still doesn't preclude web based access. Follow Oracle security guidelines.
Before I show you how to get to your data, let's talk about URLs and URIs. A URL is a Uniform Resource Locater and URI is a Uniform Resource
Identifier. A URL is the way you would identify a document on the net, i.e. http://www.oracle.com is a URL. A URI is a more generic form of a URL.
Oracle supports three types of URI: HTTPURIType - basically a URL (which would be like the URL above), XDURIType - a pointer to an XDB resource
(usually an XML document but can be other objects), and DBURIType - a pointer to database objects.
It's the DBURIType that we're going to concentrate on here. The DBURIType let's us reference database objects using a file/folder paradigm. The
format for a DBURI is /oradb/<schema>/<table>. Oradb is shorthand for the database; it is not the database name or SID. My database is named XE
but I still use oradb in the DBURI. For example, the view we created above is in my XE database, is owned by HR (at least in my case) and is called
EMPS_AND_DEPTS. This can be referenced as /oradb/HR/EMPS_AND_DEPTS.
If the view had many rows and you wanted only one of them, you can restrict it by including a predicate. The documentation for XDB has a great
write up on Using DBURIs.In our case, we are going to write out the entire document. Now that you understand that the DBURI is a pointer to
objects in our instance, we can use that to access the data as a URL.
The format for the URL call is http://<machinename>:<port>/<DBURI>
In my case, my XE database is running on a machine called mach1 and is listening on port 8080. So to see the view we created above, I open my
browser and navigate to: http//mach1:8080/oradb/HR/EMPS_AND_DEPTS
The created URL will be as http//mach1:8080/oradb/PUBLIC/EMPS_AND_DEPTS
If your database is set up correctly and listening on port 8080 (the default), your browser should ask you to login. Login as the user who created the
view (in my case HR). You should now get an XML document displayed in your browser.
And that's it. It doesn't get much simpler than that. If you get rid of the descriptive text above, it basically comes down to:
Create a table or view
Open your web browser
Enter a URL
Enter a user ID and password
View your XML
If you notice, Oracle formatted the data as XML for us. Our view returns scalar columns and an XML fragment called Dept. Oracle formatted the
return results into an XML format.
And as a side note, if you look closely, you'll see that my URL has PUBLIC where I said to put HR. PUBLIC is a synonym for all objects that your
logged in user can see. That way, if your user has been granted select access on many schemas, you can use PUBLIC and see any of them. -
Output query result in XML format
folks:
could anybody provide more information
about how to generate query result in
xml format? looks like DBXML is for demo only
and i have heard that PLSQL XML parser is the way to go; so far i have not found
a sample yet on how to actually
do the XML generation; if you know more
about it, please let me know; thanks in
advance.
BillHere are some sample apps that might interest you:
[list]
[*][url [URL=http://technet.oracle.com/tech/xml/xsql_servlet/index2.htm?Code&files/ffhome.html]The]http://technet.oracle.com/tech/xml/xsql_servlet/index2.htm?Code&files/ffhome.html]The XML Flight Finder
[*][url [URL=http://technet.oracle.com/sample_code/tech/xml/xmlb2b/doc/xb2bhome.html]B2B]http://technet.oracle.com/sample_code/tech/xml/xmlb2b/doc/xb2bhome.html]B2B with XML
[list]
Enjoy,
-rh -
Converting a result of query into XML format
Hi,
I am going to use DBXML,DBBOM and DBXSL
ie PLSXML utilities to convert the records returned after querying the data into XML format.Is it possible to do this using these packages?
Should i use Oracle SQL XML Utility?
Which would be better?I've used both utilities and I personally like the concept of SQL Utility. I'm still
having some problem with encoding issues
but it seems a better tool to use with Java.
If I'm just going to be using PL/SQL, I'll
use PLSXML utilities. Note that PLSXML does
not support SAX nor will XSQL servlet work
with it.
null -
Saving the query result in XML format
Hi All,
I have a requirement to save the result of a query in XML format on the application server. Can we do this?
Best Rgds,
James.You can explore the possibility of the execution of query with XMLA:
Official documentation
https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/1d71d190-0201-0010-239a-8b96516bf372
and a good Blog
/people/prakash.darji/blog/2006/09/04/work-with-xmla-web-service-for-bi-data-in-external-applications
The result will be an SOAP message (XML) but also the request could be a SOAP message you can investigate if simulate the request by BW client or server.
Regards,
Sergio -
Returning query results in XML format
Besides using custom tag library, does anyone know any methods or techniques that i can retrive the query results from database in XML format. for example, i have a table named student in database like this:
StudentNo Name Gender Degree
123 Tony male B.Comp.Sci.
456 Tom male B.Fiance
343 Mary female B.Accountingso, if i have query select * from table student, i would get someting like the following:
<row>
<studentNo>123</studentNo>
<name>Tony</name>
<Gender>male</Gender>
<Degree>B.Comp.Sci</Degree>
</row>
<row>
<studentNo>456</studentNo>
<name>Tom</name>
<Gender>male</Gender>
<Degree>B.Finace</Degree>
</row>
The reason i am asking for this is i need query results returned in XML format, so i can wrap XSLT tag around, and apply for HTML, WML, and XHTML template resprectively so i can display them on different terminals. any help is appreciated.I have this method in a ResultSetMapper class:
* Return result sets as an XML stream, with root tag named
* "results", one "result" tag per row, and "result" child tag
* names equal to the column name
* @param query result set
* @param list of column names to include in the result map
* @throws SQLException if the query fails
* @throws JDOMException if the XML stream creation fails
public static final Document toJDOM(ResultSet rs, List wantedColumnNames)
throws SQLException, JDOMException
Element rows = new Element("results");
int numWantedColumns = wantedColumnNames.size();
while (rs.next())
Element row = new Element("result");
for (int i = 0; i < numWantedColumns; ++i)
String columnName = (String)wantedColumnNames.get(i);
Object value = rs.getObject(columnName);
row.addContent(new Element(columnName).setText(value.toString()));
rows.addContent(row);
return new Document(rows);
}It uses JDOM from www.jdom.org. - MOD -
Export Query SQL multi-linee in XML format and Import XML in SAP
Good morning
Someone know if is possible after Export Query SQL on OITT and ITT1 with thousands rows in XML with values already change thru the query.
Then import the XML without using loop in SAP with the above code vb.net
oDistinta = DirectCast(m_oCompany.GetBusinessObjectFromXML(xmlFile, 0), SAPbobsCOM.ProductTrees)
Dim errCode As Integer = 0
Dim strErrore As String = ""
Dim iErrore As Integer = 0
oDistinta.Browser.ReadXml(xmlFile, 0)
errCode = oDistinta.Update
m_oCompany.GetLastError(iErrore, strErrore)
'on error
If iErrore <> 0 Then
To make easy the program i post with 2 ProductTrees item. The 2 item already exist in OITT e ITT1.
When i update the 1st item is modify but the 2nd not change.
Here is the XML
<?xml version="1.0" encoding="UTF-16"?>
<BOM>
<BO>
<AdmInfo>
<Object>66</Object>
<Version>2</Version>
</AdmInfo>
<ProductTrees>
<row>
<TreeCode>V9998</TreeCode>
<TreeType>iProductionTree</TreeType>
<Quantity>1000.000000</Quantity>
<U_SHI_MZDA>0</U_SHI_MZDA>
<U_SHI_PUMA>0</U_SHI_PUMA>
<U_SHI_PUUO>0</U_SHI_PUUO>
</row>
</ProductTrees>
<ProductTrees_Lines>
<row>
<ItemCode>1047</ItemCode>
<Quantity>5.000000</Quantity>
<Warehouse>Mc</Warehouse>
<Price>0.000000</Price>
<Currency>
</Currency>
<IssueMethod>im_Backflush</IssueMethod>
<Comment>
</Comment>
<ParentItem>V9998</ParentItem>
<PriceList>2</PriceList>
<DistributionRule>
</DistributionRule>
<U_IDE_POS>10</U_IDE_POS>
<U_IDE_FASE>0</U_IDE_FASE>
<U_IDE_OPER>10</U_IDE_OPER>
<U_SHI_UndInv>N</U_SHI_UndInv>
<U_SHI_Pri1>
</U_SHI_Pri1>
<U_SHI_Pri2>
</U_SHI_Pri2>
<U_SHI_Pri3>
</U_SHI_Pri3>
<U_SHI_Prgm>
</U_SHI_Prgm>
<U_SHI_Tim2>0.000000</U_SHI_Tim2>
<U_SHI_Tim3>0.000000</U_SHI_Tim3>
<U_SHI_DexNACQ>
</U_SHI_DexNACQ>
<U_SHI_BP>
</U_SHI_BP>
<U_SHI_PrcKit>0.000000</U_SHI_PrcKit>
<U_SHI_ItmNACQ>
</U_SHI_ItmNACQ>
<U_SHI_LineOk>N</U_SHI_LineOk>
</row>
</ProductTrees_Lines>
<ProductTrees>
<row>
<TreeCode>V9999</TreeCode>
<TreeType>iProductionTree</TreeType>
<Quantity>1000.000000</Quantity>
<U_SHI_MZDA>0</U_SHI_MZDA>
<U_SHI_PUMA>0</U_SHI_PUMA>
<U_SHI_PUUO>0</U_SHI_PUUO>
</row>
</ProductTrees>
<ProductTrees_Lines>
<row>
<ItemCode>1015</ItemCode>
<Quantity>1000.000000</Quantity>
<Warehouse>Mc</Warehouse>
<Price>0.000000</Price>
<Currency>
</Currency>
<IssueMethod>im_Backflush</IssueMethod>
<Comment>
</Comment>
<ParentItem>V9999</ParentItem>
<PriceList>5</PriceList>
<DistributionRule>
</DistributionRule>
<U_IDE_POS>30</U_IDE_POS>
<U_IDE_FASE>0</U_IDE_FASE>
<U_IDE_OPER>30</U_IDE_OPER>
<U_SHI_UndInv>N</U_SHI_UndInv>
<U_SHI_Pri1>
</U_SHI_Pri1>
<U_SHI_Pri2>
</U_SHI_Pri2>
<U_SHI_Pri3>
</U_SHI_Pri3>
<U_SHI_Prgm>
</U_SHI_Prgm>
<U_SHI_Tim2>0.000000</U_SHI_Tim2>
<U_SHI_Tim3>0.000000</U_SHI_Tim3>
<U_SHI_DexNACQ>
</U_SHI_DexNACQ>
<U_SHI_BP>
</U_SHI_BP>
<U_SHI_PrcKit>0.000000</U_SHI_PrcKit>
<U_SHI_ItmNACQ>
</U_SHI_ItmNACQ>
<U_SHI_LineOk>N</U_SHI_LineOk>
</row>
</ProductTrees_Lines>
</BO>
</BOM>
Someone know the reason ?
Thanks in advance.
RegardsHi Gabriele,
The issue is that the ReadXml method takes an index parameter which is the number of the object that you want to read from the XML data. In your code you are specifying index 0 which is the first product tree in your file so when you call the Update method this is the only record that will be updated. It is not possible to do a mass update using the DI API in this way, you must always load each object separately. You can use the GetXMLelementCount method of the Company object to find out how many product tree objects are in your file and then use the ReadXML method to load each one by incrementing the index parameter in a loop.
Kind Regards,
Owen -
Problem with getting a D2K report in XML format
Hi all,
Could any body give a solution for this problem.
I have a matrix report like following:
Q_Statement_Of_Net_Assets ----> main query
|
G_Cross ----> Cross product
| CS_VALUE
| CS_NET_ASSET
| CF_COSTI
|
| --------------------------------- |
| | G_CTIF | | ------> Like this I have two more groups
| --------------------------------- |
...... |
-----------------------------------------------|
My requirement is i want to print CS_VALUE, CS_NET_ASSET, CF_COSTI values in XML report, these values i am getting in a Normal/RTF format reports.
But i am not getting in XML format report.
thanks in advance.
VasuThanks Schellyc
actually I want to creat a new SOAPMessage for the very beginning like this:
try{
MessageFactory mf = MessageFactory.newInstance();
SOAPMessage msg = mf.createMessage();
SOAPPart sp = msg.getSOAPPart();
//create the header container
SOAPEnvelope se = sp.getEnvelope();
SOAPHeader sh = se.getHeader();
SOAPBody sb = se.getBody();
}catch(Throwable e) {
e.printStackTrace();
}and I want to get the empty header from this newly created SOAPEnvelop and add my own content into the header as well as the empty body.
I wrote the code by following the example from the jaxm api.
can anybody tell me any further information about the NullPointerException? -
Report output format xml, missing column while open in excel for single row
Dear,
There is a strange case, we have an customize concurrent program to display output in xml format. Now Problem is, if query get single record on the bases of parameter then there is no column heading available in excel. However, if parameter meet more than one record then there is no issue with column heading and reports is working find.
Pls have an idea?Dear Pk,
Here is an example, will show the actual problem. Let explain you, first i have run report by restricting query on single record which output name is "output1", again i run same report by changing where clause so it return multiple row which is "output2". if you past code in text document each one and save it as xml but when you open this file in excel report you will find column heading which rows consist multiple row, however, ouput1 file have no heading columns that's a problem.
1.Oputput1
<?xml version="1.0"?>
<!-- Generated by Oracle Reports version 6.0.8.11.3 -->
<DEPTNO>
<LIST_G_EMPNO>
<G_EMPNO>
<EMPNO>7839</EMPNO>
<ENAME>KING</ENAME>
<HIREDATE>17-NOV-81</HIREDATE>
<SAL>5000</SAL>
<DEPTNO>10</DEPTNO>
</G_EMPNO>
</LIST_G_EMPNO>
</DEPTNO>
2.Oputput2
<?xml version="1.0"?>
<!-- Generated by Oracle Reports version 6.0.8.11.3 -->
<T01103240>
<LIST_G_EMPNO>
<G_EMPNO>
<EMPNO>7788</EMPNO>
<ENAME>SCOTT</ENAME>
<HIREDATE>09-DEC-82</HIREDATE>
<SAL>3000</SAL>
<DEPTNO>20</DEPTNO>
</G_EMPNO>
<G_EMPNO>
<EMPNO>7902</EMPNO>
<ENAME>FORD</ENAME>
<HIREDATE>03-DEC-81</HIREDATE>
<SAL>3000</SAL>
<DEPTNO>20</DEPTNO>
</G_EMPNO>
</LIST_G_EMPNO>
</T01103240>
Hope you got it.
Maybe you are looking for
-
Copy/pasting files in finder?
After using OS 9 for a while, and growing accustomed to the quirks and how to move around in it, I've found that there is no way to copy and paste files for the purpose of...........well copying them and pasting them somewhere else. I've found that i
-
Connecting Ipod to new computer with Music stored on a network drive
So, a client of mine purchased a new laptop, and when syncing the ipod to the new computer with songs added to the new library, it says that the sync was successful, but the songs are not synced to the ipod. It syncs the time and date, but not the mu
-
Quick Question: CS6 Installation Best Practice
Hi Guys I have CS5 and CS5.5 Master Collection running on my PC (Win7 64bit SP1, Intel Core i7 2.67ghz, 24 gig RAM) and I've just taken ownership of the CS6 upgrade. When I loaded MC CS5.5 I had a bunch of errors, which turned out to be related to th
-
The Mystery of the Duplicating Photos with Varying resolutions and Sizes by Sony Z1 Compact
about the duplicating photos with varying resolutions and Sizes problem... I have a band-aid fix to this without deleting everything in your phone. What you do is to find time to actually MANUALLY DELETE the extra photos. Don't delete it by Taping o
-
Am trying to install the mac os yosemite and its giving me an error message that "The Install OS X Yosemite application can't be used from this disk". What is the problem?