Oracle.xml.sql.OracleXMLSQLException: Character ')' is not allowed in an XM
I need to use query-database functionality in transform activity to make a stored function call. My sql query parameter should be
Select CDMB_BPEL_UTILS_PKG.get_coa(null) from dual
Corresponding XML is
?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ns0="http://www.example.org" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ldap="http://schemas.oracle.com/xpath/extension/ldap" xmlns:xp20="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20" xmlns:bpws="http://schemas.xmlsoap.org/ws/2003/03/business-process/" xmlns:ora="http://schemas.oracle.com/xpath/extension" xmlns:orcl="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.ExtFunc" exclude-result-prefixes="xsl ns0 xsd ldap xp20 bpws ora orcl">
<xsl:template match="/">
<ns0:OracleRoot>
<ns0:OracleMappedOut>
<ns0:ExpType>
<xsl:value-of select="orcl:query-database('select cdmb_bpel_utils_pkg.get_coa(null) from dual',false(),false(),'eis/JNDI/GDB2')"/>
</ns0:ExpType>
</ns0:OracleMappedOut>
=========But I get the following error when testing the same===========
oracle.xml.sql.OracleXMLSQLException: Character ')' is not allowed in an XML tag name
========================================================
I guess I need to use escape characters to pass ( . I tried using " and ' but in vain. Any help is appreciated to resolve this issue.
Siva,
version: 10.1.3.4
Your inputs may be of high use for me as well.
I have similar requirement. I have to execute the following sql query
select sum(salary) from emp. When I run this query using ora:orcl:query-database, I got the same exception what you have got. So do you mean if i use an alias for this, it would solve my pbm?
select sum(salary) sal from emp+
rgds,
sen
Similar Messages
-
Hi All,
I have 2 identical table structures with different data in Oracle.
I am using following xsql and XSLT sheet to produce xml files with these tables. ( have to run twice xsql file by changing the Table names )
When I run the xsql file with Table1, it works fine, produced the xml file on the browser.
But when I run the xsql file with Table2, it gives following error message:
The XML page cannot be displayed
Cannot view XML input using style sheet. Please correct the error and then click the Refresh button, or try again later.
Invalid at the top level of the document. Error processing resource 'http://192.10.1.14:8988/Workspace_ONIX-ONIX2-context-root/untitled1.xsql'. Line 1, Position 1
oracle.xml.sql.OracleXMLSQLException: Cannot map Unicode to Oracle character.
^
These two are my xsql and xslt files:
- - - - xsql file - - - -
<?xml version = '1.0' encoding = 'windows-1252'?>
<?xml-stylesheet type="text/xsl" href="TT14.xsl"?>
<xsql:query connection="Connection1" id-attribute="" tag-case="lower"
rowset-element="LIST" row-element="DEPA"
xmlns:xsql="urn:oracle-xsql">
SELECT * from TT26
</xsql:query>
TT14.xsl file
<xsl:stylesheet version="1.0" encoding="UTF-8" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method ="xml" indent= "yes" encoding="UTF-8"/>
<!--DOCTYPE ONIXmessage SYSTEM "http://www.editeur.org/onix/2.1/reference/onix-international.dtd"-->
<xsl:template match ="list">
<BBMessage>
<<xsl:for-each select="depa">
<Product>
<RecordReference>
<xsl:value-of select="wai"/>
</RecordReference>
<NotificationType>
<xsl:value-of select="wantype"/>
</NotificationType>
</Product>
</xsl:for-each>
</BBMessage>
</xsl:template>
</xsl:stylesheet>
All comments are highly welcomed...
ThanksHi Deepak
Thanks for the post, but I am afraid that's not the issue with the error.
I changed both encoding to "UTF-8" still i get the problem.
I tried even without the XSLT sheet, still I have the problem..
- - - - xsql file ---
<?xml version = '1.0' ?>
<!--
| Uncomment the following processing instruction and replace
| the stylesheet name to transform output of your XSQL Page using XSLT
<?xml-stylesheet type="text/xsl" href="YourStylesheet.xsl" ?>
-->
<page xmlns:xsql="urn:oracle-xsql" connection="Connection1">
<xsql:query max-rows="-1" null-indicator="no" tag-case="lower">
select * from Table2
</xsql:query>
</page>
- - - - Result ----
<?xml version="1.0" ?>
- <!--
| Uncomment the following processing instruction and replace
| the stylesheet name to transform output of your XSQL Page using XSLT
<?xml-stylesheet type="text/xsl" href="YourStylesheet.xsl" ?>
-->
- <page>
<error>oracle.xml.sql.OracleXMLSQLException: Cannot map Unicode to Oracle character.</error>
</page>
Any Comment ???
Thanks -
I am using Oracle XML SQL utility to generate some XML using CURSOR
operator.
Following is the query -
SELECT PROJECT.PROJ_CD,
PROJECT.PROJ_TITLE,
CURSOR(SELECT ISSUES.ISSUE_ID
FROM ISSUES
WHERE PROJECT.PROJ_ID = ISSUES.PROJ_ID )
as ISSUES_DATA
FROM PROJECT
WHERE PROJECT.PROJ_ID = 1
This query works fine when I create a direct connection using Oracle JDBC
thin driver. But when I execute same thing using a connection from a
Weblogic connection pool (which uses exactly the same Oracle JDBC thin
driver, classes12.zip), I get following error-
<?xml version = '1.0'?>
<ERROR>oracle.xml.sql.OracleXMLSQLException: cursorGetMetaData: this method
is not supported by OracleXMLDataSetGenJdbc' class. Please use
'OracleXMLDataSetExtJdbc' instead.</ERROR>
Following are the details about my environment:
Weblogic5.1 on Windows NT 4.0
Oracle 8.1.5 on Sun Solaris
Oracle JDBC thin Classes12.zip (from Oracle 8.1.6)
Oracle XML SQL utility XSU12_ver1_2_1
Does anyone have any idea what is going on. Please help.
Thanks.Thanks for your reply.
Here is what I am doing:
I have connection pool defined in welogic.properties file
weblogic.jdbc.connectionPool.oraclePool=\
url=jdbc:oracle:thin:@192.168.2.251:1521:orcl,\
driver=oracle.jdbc.driver.OracleDriver,\
loginDelaySecs=1,\
initialCapacity=1,\
maxCapacity=15,\
capacityIncrement=1,\
allowShrinking=true,\
shrinkPeriodMins=5,\
refreshMinutes=5,\
testTable=,\
props=user=someuser;password=somepasswd
weblogic.allow.reserve.weblogic.jdbc.connectionPool.oraclePool=everyone
weblogic.jdbc.TXDataSource.orclDataSource=oraclePool
Then I have a DBConnection class which gets connection from the pool
following is some code from DBConnection class
private Connection con = null;
private DataSource ds = null;
private String providerURL;
private String dataSource;
private String contextFactory;
private IpmsProps ipmsProp = null;
public Connection getConnection() {
if ( con == null ) {
try {
ipmsProp = IpmsProps.getInstance();
providerURL = ipmsProp.getProviderURL();
dataSource = ipmsProp.getDataSource();
contextFactory = ipmsProp.getContextFactory();
Properties p = new Properties();
p.put(javax.naming.Context.PROVIDER_URL, providerURL);
p.put(javax.naming.Context.INITIAL_CONTEXT_FACTORY,
contextFactory);
Context ctx = new InitialContext(p);
Context ctx = new InitialContext();
ds = (DataSource) ctx.lookup(dataSource);
con = ds.getConnection();
} catch (Exception e) {
System.out.println("Error While creating connection! " +
e.toString());
} // catch
I Hope you will be able to provide me some work around.
Thank you very much for the help.
Rajinder.
"Joseph Weinstein" <[email protected]> wrote in message
news:[email protected]...
Hi. It's probably because you're calling some Oracle-specific method,passing it
a pool JDBC object, and though the Oracle methos signature says it will
take a generic java.sql.XXX object, it really is going to assume the thingis
an Oracle class, and fails when it tries to cast it to such.
Depending on how you're getting your pool connection, I may have aworkaround.
Joe
Rajinder Arora wrote:
I am using Oracle XML SQL utility to generate some XML using CURSOR
operator.
Following is the query -
SELECT PROJECT.PROJ_CD,
PROJECT.PROJ_TITLE,
CURSOR(SELECT ISSUES.ISSUE_ID
FROM ISSUES
WHERE PROJECT.PROJ_ID =
ISSUES.PROJ_ID )
as ISSUES_DATA
FROM PROJECT
WHERE PROJECT.PROJ_ID = 1
This query works fine when I create a direct connection using OracleJDBC
thin driver. But when I execute same thing using a connection from a
Weblogic connection pool (which uses exactly the same Oracle JDBC thin
driver, classes12.zip), I get following error-
<?xml version = '1.0'?>
<ERROR>oracle.xml.sql.OracleXMLSQLException: cursorGetMetaData: thismethod
is not supported by OracleXMLDataSetGenJdbc' class. Please use
'OracleXMLDataSetExtJdbc' instead.</ERROR>
Following are the details about my environment:
Weblogic5.1 on Windows NT 4.0
Oracle 8.1.5 on Sun Solaris
Oracle JDBC thin Classes12.zip (from Oracle 8.1.6)
Oracle XML SQL utility XSU12_ver1_2_1
Does anyone have any idea what is going on. Please help.
Thanks.--
PS: Folks: BEA WebLogic is expanding rapidly, with both entry and advancedpositions
for people who want to work with Java, XML, SOAP and E-Commerceinfrastructure products.
We have jobs at Nashua NH, Liberty Corner NJ, San Francisco and San JoseCA.
Send resumes to [email protected] -
Hi!
I am trying to reuse a code in JDeveloper to get XML from a query. I have copied the code from a method and created a new method with the copied code and changed it. The problem is that when I run the old code I now get following error:
Ett oförväntat fel har inträffat: Application: FND, Message Name: FND_GENERIC_MESSAGE.
Tokens: MESSAGE = oracle.xml.sql.OracleXMLSQLException: Det här objektet har stängts.
Vill du inte att objektet ska stängas automatiskt mellan anropen kan du granska metoden 'keepObjectOpen()'.;
This means in english something like:
An unexpected error accoured: Application: FND, Message Name: FND_GENERIC_MESSAGE = oracle.xml.sql.OracleXMLSQLException: This object is closed. If you don't want the object to close automatically between calls you can check method 'keepObjectOpen()';
the code I'm running is:
public String punchoutSomething()
throws Exception
StringBuffer sqlForXml =new StringBuffer("select pv.*"
+", cursor(select * from XXPOS_PUNCHOUT_TABLE2 c where c.vendor_id=pv.vendor_id) as contacts"
+" from XXPOS_PUNCHOUT_TABLE1 pv where vendor_id in (");
// add all ids
SuppSummVOImpl vendorView = getSuppSummVO();
Row row;
int punchoutCnt=0;
// vendorView.reset();
Row[] selectedRows = vendorView.getFilteredRows("SelectStatus","Y");
for(int i=0;i<selectedRows.length;i++)
if(punchoutCnt>0)
sqlForXml.append(",");
sqlForXml.append(((Number)selectedRows.getAttribute("VendorId")).toString());
punchoutCnt++;
if(punchoutCnt==0)
sqlForXml.append("-1"); // make sql valid, will not return rows
sqlForXml.append(")");
// System.out.println(sqlForXml); // DEBUG
OADBTransaction tx = (OADBTransaction)getOADBTransaction();
OracleXMLQuery xq = new OracleXMLQuery( tx.getJdbcConnection()
, sqlForXml.toString()
xq.setRaiseException(true); // in case of error raise an exception (default
// is to generate an error document
xq.setEncoding("UTF-8"); // not necessary?
xq.useLowerCaseTagNames();
xq.setRowsetTag("vendors");
xq.setRowTag("vendors_row");
//System.out.println(xq.getXMLString()); // DEBUG
XMLDocument suppl = (XMLDocument)xq.getXMLDOM();
XSLProcessor xslt = new XSLProcessor();
InputStream sheetStream = this.getClass().getResourceAsStream("mystylesheet.xsl");
if(sheetStream==null)
throw new Exception("Could not load stylesheet");
XSLStylesheet sheet = xslt.newXSLStylesheet(
sheetStream
StringWriter serialize = new StringWriter();
xslt.processXSL(sheet,suppl,new PrintWriter(serialize));
String returnXML = serialize.getBuffer().toString();
// System.out.println("X:"+returnXML); // DEBUG
sheetStream.close();
return returnXML;
===================
i've copied the same code into another method and only changed the sql-statment to be used and the stylesheet to use to transform the xml. Is something wrong with that?
Another question: if the xsl refers to a xsd but wihtout any path where should it be?
Thanks for the help,
PatriciaActually, having looked at Metalink, seems that although this message may be accurate and correct,
it has been 'introduced' as part of the 9i JDBC driver.
So, I used the 8i JDBC driver I happened to have instead and that worked fine. -
Oracle.xml.sql.OracleXMLSQLException: Expected name instead of .
Hi,
I'm using XDK in Tomcat to execute queries and get the XML result in the browser. I have written many queries but now I'm having problems in one of them.
The error output that I see in my browser is this one:
<ROOT>
<ERROR>
oracle.xml.sql.OracleXMLSQLException: Expected name instead of <.
</ERROR>
</ROOT>:
This error message is known as XML-20126 but it's not documented in the XML Developer's Kit Programmer's Guide, so I don't know what to do.
My XSQL query is the following:
<ROOT connection="xxxx_read" xmlns:xsql="urn:oracle-xsql">
<xsql:query>
SELECT XMLAGG(XMLELEMENT("NODE",
XMLELEMENT("name", b.nodename),
(SELECT XMLAGG(XMLELEMENT("SERVICE",
XMLATTRIBUTES(a.serviceabbr AS "type")
ORDER BY a.serviceabbr
FROM service a, serviceinstance c
WHERE c.isdeleted='N'
AND a.serviceid=c.serviceid
AND c.nodeid=b.nodeid
ORDER BY b.nodename
) AS "NODES"
FROM node b
WHERE b.isdeleted='N'
</xsql:query>
</ROOT>
That query executes fine in sqlplus, where I can see the XML result.
I think my problem could be related to the size of the XML output. In sqlplus, the output has around 38000 bytes size, which is nothing, so I don't really know why that should be a problem. Do you have any idea?
Thanks for your help,
DavidSo it seems there is a problem in fact:
XDB FUNCTION RESULTS ARE TRUNCATED WHEN USING XSQL
*** 02/25/04 08:28 am ***
Problem Description
There appears to be a limit on the content or characters that XSQL pages
handle when being passed data from XDB functions such as XMLAGG() and
XMLELEMENT().
If you have a xsql page of the form
< ?xml version="1.0"?>
< xsql:query xmlns:xsql="urn:oracle-xsql" connection="demo" >
select XMLAgg(XMLElement("Test", XMLAttributes(i.id as "Id_van_de_test",
i.name as "Name_van_de_test"))) as "Tests" from problem_xml i
< /xsql:query>
If the number of rows (or amount of data) in the table is low, the result
appears okay. However, if the data returned is large the data appears to
truncate giving xml parsing errors as if the xml returned is not well formed.
In the testcase provided, the error is as follows :-
Results from 10.1.0.2
< Line 2, Column 16354>: XML-20126: (Fatal Error) '< ' cannot appear in attribute value.
< Line 2, Column 16366>: XML-20190: (Fatal Error) Whitespace required.
< Line 2, Column 16366>: XML-20201: (Fatal Error) Expected name instead of 4.
< ?xml version = '1.0'?>
value.< /ERROR>
Results from 9.2.0.6
< Line 2, Column 16354>: XML-0126: (Fatal Error) '< ' cannot appear in attribute value.
< Line 2, Column 16368>: XML-0190: (Fatal Error) Whitespace required.
< Line 2, Column 16368>: XML-0201: (Fatal Error) Expected name instead of 3.
< Line 2, Column 16371>: XML-0122: (Fatal Error) '=' missing in attribute.
< Line 2, Column 16391>: XML-0190: (Fatal Error) Whitespace required.
< Line 2, Column 16396>: XML-0122: (Fatal Error) '=' missing in attribute.
< Line 2, Column 16397>: XML-0125: (Fatal Error) Attribute value should start with quote.
< ?xml version = '1.0'?>
value.< /ERROR>
And the workaround:
======================================================
The only workaround we have is to get the Document generated using
DBMS_XMLQUERY [with expanded entities].
_==Start===
create or replace procedure Query2XML(QueryString varchar2 default
'select col1 from xml_tab where r_id = ?') IS
XMLCtx number;
myXML clob;
myXMLLength number;
BEGIN
XMLCtx := DBMS_XMLQUERY.NEWCONTEXT(QueryString);
myXML := DBMS_XMLQUERY.GETXML(XMLCtx);
myXMLLength := DBMS_LOB.GETLENGTH(myXML);
DBMS_XMLQUERY.CLOSECONTEXT(XMLCtx);
END Query2XMLFile;
_==Start===
Currently, XDB uses a DOM based model for XSLT evaluation. It is not
possible to support disable-output-escaping constructs through this
evaluation. This might be supported in a future release when a different
model is implemented.
============================================================= -
Hi All,
OracleXMLSave class in the Oracle XDK is being used to load XML data into an 8170 database. The Java code is running in IBM WebSphere with container-managed transactions. When JTA is enabled with the Merant JDBC driver for Oracle, we get the following error when the XML is loaded:
oracle.xml.sql.OracleXMLSQLException: Cannot enable auto commit within JTS
transaction
at java.lang.Throwable.fillInStackTrace(Native Method)
at oracle.xml.sql.dml.OracleXMLSave.saveXML(OracleXMLSave.java:2213)
at oracle.xml.sql.dml.OracleXMLSave.insertXML(Compiled Code)
This suggests the OracleXMLSave class is not aware of the fact that it is now operating in a JTS transaction where control is managed elsewhere. i.e. should also not attempt to commit or rollback, as this is the responsibility of the container.
Is there a property which needs to set to prevent the above or does the XDK not work with J2EE (JTS) transactions?.
If you have any useful comments, let me know. Testing the above presents me with a number of problems so if this is easily explained , let me know.
Thanks,
MalcolmClearly , there does seem to be something a bit odd with the above stack.
<Bug:1917808> mentions OracleXMLSave in context of plsql equivalent : dbms_xmlsave . i.e dbms_xmlsave is a wrapper around OracleXMLSave class.
disabling autocommit on connection as follows should help:
conn = DriverManager.getConnection("connect string","scott","tiger");
conn.setAutoCommit(false);
to disble auto commit and see if this has an effect.
This issue might be <Bug:1497506>. If disabling autocommit does not work then it appears that it could be this issue .
Malcolm
Hi All,
OracleXMLSave class in the Oracle XDK is being used to load XML data into an 8170 database. The Java code is running in IBM WebSphere with container-managed transactions. When JTA is enabled with the Merant JDBC driver for Oracle, we get the following error when the XML is loaded:
oracle.xml.sql.OracleXMLSQLException: Cannot enable auto commit within JTS
transaction
at java.lang.Throwable.fillInStackTrace(Native Method)
at oracle.xml.sql.dml.OracleXMLSave.saveXML(OracleXMLSave.java:2213)
at oracle.xml.sql.dml.OracleXMLSave.insertXML(Compiled Code)
This suggests the OracleXMLSave class is not aware of the fact that it is now operating in a JTS transaction where control is managed elsewhere. i.e. should also not attempt to commit or rollback, as this is the responsibility of the container.
Is there a property which needs to set to prevent the above or does the XDK not work with J2EE (JTS) transactions?.
If you have any useful comments, let me know. Testing the above presents me with a number of problems so if this is easily explained , let me know.
Thanks,
Malcolm -
Oracle.xml.sql.OracleXMLSQLException
this is my code:
try{
Connection con=dbh.GetConnection();
Statement s=con.createStatement();
ResultSet rs=s.executeQuery("select * from tg_tbl");
OracleXMLQuery qry = new OracleXMLQuery(con,rs);
String xmlString = qry.getXMLString();
System.out.println(" OUPUT IS:\n" + xmlString);
catch(Exception e){e.printStackTrace();}
this result is:
OUPUT IS:
<?xml version = '1.0'?>
<ERROR>oracle.xml.sql.OracleXMLSQLException: java.sql.SQLException</ERROR>
can anyone tell me the reason<BLOCKQUOTE><font size="1" face="Verdana, Arial">quote:</font><HR>Originally posted by Steven Muench ([email protected]):
Given what you've included in your posting it's hard to say. It could be any ORA- error. Table or view does not exist.
If you change your query to
"SELECT * FROM DUAL"
does it work?<HR></BLOCKQUOTE>
I know it now.The columnName should be used to replace the "*"
null -
Oracle.xml.sql.OracleXMLSQLException: getCollectionMetaData:
The following Java code:
// Create an OracleOCIConnectionPool instance with default configuration
OracleOCIConnectionPool cpool = new OracleOCIConnectionPool("appserver", "9ias", url, null);
// Print out the default configuration for the OracleOCIConnectionPool
System.out.println ("-- The default configuration for the OracleOCIConnectionPool --");
displayPoolConfig(cpool);
// Get a connection from the pool
OracleOCIConnection conn1 = (OracleOCIConnection) cpool.getConnection("usecase", "uml");
// Create a Statement
Statement stmt = conn1.createStatement ();
// Select the ENAME column from the EMP table
ResultSet rset = stmt.executeQuery ("select * from usecases_ov");
OracleXMLQuery q = new OracleXMLQuery(conn1,"select * from usecases_ov");
System.out.println(q.getXMLString());
Produces:
-- The default configuration for the OracleOCIConnectionPool --
Min poolsize Limit: 1
Max poolsize Limit: 1
Connection Increment: 0
NoWait: false
Timeout: 0
PoolSize: 1
ActiveSize: 0
<?xml version = '1.0'?>
<ERROR>oracle.xml.sql.OracleXMLSQLException: getCollectionMetaData: this method is not supported by 'OracleXMLDataSetGenJdbc' class. Please use 'OracleXMLDataSetExtJdbc' instead.</ERROR>
Is there a workaround?Solved:
Replace the last three lines of the above code with -
I replaced the corresponding section of the above code with:
ResultSet rset = stmt.executeQuery ("select * from usecases_ov");
OracleXMLDataSetExtJdbc dset =
new OracleXMLDataSetExtJdbc(conn1, "select * from usecases_ov");
OracleXMLQuery q = new OracleXMLQuery(dset);
System.out.println(q.getXMLString()); -
ORA-29540: class oracle/xml/sql/query/OracleXMLStaticQuery does not exist
I am getting below error when trying to generate xml. Browsing on google did not help me. I would appreciate if someone can provide the solution.
SQL> select dbms_xmlquery.getxml('select * from dual', 2) from dual;
ERROR:
ORA-29540: class oracle/xml/sql/query/OracleXMLStaticQuery does not exist
ORA-06512: at "SYS.DBMS_XMLQUERY", line 19
ORA-06512: at "SYS.DBMS_XMLQUERY", line 271
ORA-06512: at line 1Then it is probably not the case that you are affected by the issue described in Metalink document 185857.1, but if I were you I would check it anyway, since it might be the problem.
-
Appication Server: 10g, Database: Oracle 9i and Oracle 10g
I have a table 'sw_icd2' in the database that has one column of XMLType.
The code below, attempts to query this table as 'select * from sw_icd2' and display the result. I was able to execute this query in sqlplus.
But when I run a program using XSU in JDeveloper:
OracleXMLQuery qry = new OracleXMLQuery(conn, "select * from sw_icd2");
XMLDocument domDoc = (XMLDocument)qry.getXMLDOM();
domDoc.print(System.out);
StringWriter s = new StringWriter(10000);
domDoc.print(new PrintWriter(s));
System.out.println(s.toString());
qry.close();
I get the following Error:
"oracle.xml.sql.OracleXMLSQLException: Conversion to String failed"
Any ideas on how I can resolve this issue? Your help would be appreciated.
Thanks!Okay, it looks like the problem has something to do with the TIMESTAMP data type in tables.
oracle.xml.sql.query.OracleXMLQuery can't seem to handle tables with the TIMESTAMP data type.
this code ran fine on my machine :
import oracle.jdbc.driver.*;
import oracle.xml.sql.query.OracleXMLQuery;
import java.lang.*;
import java.sql.*;
public class testXMLSQL {
public static void main(String[] args) {
try {
// Create the connection
System.out.println("before getConnection ");
Connection conn = getConnection("scott","tiger");
System.out.println("after getConnection ");
// Create the query class
OracleXMLQuery qry = new OracleXMLQuery(conn, "SELECT * FROM EMP");
System.out.println("after OracleXMLQuery object created ");
// Get the XML string
String str = qry.getXMLString();
// Print the XML output
System.out.println("The XML output is:\n"+str);
// Always close the query to get rid of any resources..
qry.close();
} catch(SQLException e) {
System.out.println(e.toString());
// Get the connection given the user name and password.!
private static Connection getConnection(String username,
String password)
throws SQLException
// register the JDBC driver..
DriverManager.registerDriver(new
oracle.jdbc.driver.OracleDriver());
// Create the connection using the OCI8 driver
Connection conn =
DriverManager.getConnection(
"jdbc:oracle:thin:@<server_name>:1521:<sid>",
username,password);
return conn;
Then I created another table :
create table emp_test as select * from emp;
added a timestamp to it :
alter table emp_test add (time timestamp(6));
and filled it with timestamp information :
update emp_test set time = timestamp'2005-09-22 09:26:50.124';
ran the same code but changed the SQL to :
"SELECT * FROM EMP_TEST"
and got the error message :
The XML output is:
<?xml version = '1.0'?>
<ERROR>oracle.xml.sql.OracleXMLSQLException: Conversion to String failed</ERROR>
looks like bug in OracleXMLQuery object?? -
SOAP oracle xml sql utility class definition not found error
I have created a java class that connects to database using JDBC runs an sql statement and produces xml using Oracle XML SQL Utility class. The java class works perfectly when I deploy it as a soap web service and try to run through SOAP server it gives a SOAP error oracle/xml/sql/query/OracleXML/Query [java.lang.NoClassDefFoundError].
Can anyone help please.
Thanks
AlinaSounds like you have not included the xsu12.jar file in the server-side CLASSPATH.
This depends also on the xmlparserv2.jar and on the Oracle JDBC driver. Later versions
of XSU may also depend on the xdb.jar file, too. -
Oracle XSU: oracle.xml.sql.query.OracleXMLQuery is not recognized
Hi, there!
I've got a problem when tryed to use Oracle XSU (xml-sql utility to generate xml). My simple java application works fine using XSU. But when I created session stateless bean I've got an EJBException regarding this
line:
oracle.xml.sql.query.OracleXMLQuery qry = new oracle.xml.sql.query.OracleXMLQuery(conn, commandSQLStatement);
It doesn't recognize OracleXMLQuery class as I've got in dump. So my classpath includes original location of that utility and Oracle parser.
I really appreciate for any help.
Thanks.
strXML = qry.getXMLString();Patricia,
Did you go through the link
Re: XML SQL Utility
You have to put xsu12.jar in the lib directory of the jdev.
xsu12.jar is in the lib directory of the XDK installation.
You can download XDK from
http://www.oracle.com/technology/tech/xml/xdk/software/prod/xdk_java.html
Just download the XDK kit, get the xsu12.jar from the lib directory and put in the lib directory of the jdev.
-- Arvind -
Character '$' is not allowed in an XML tag name. /ERROR
Hi,
I was testing cli command java OracleXML getXML ....
getting following error result:
<?xml version = '1.0'?>
<ERROR>oracle.xml.sql.OracleXMLSQLException: Character '$' is not allowed in an XML tag name.</ERROR>
This was because the database column name included $ characters.
Question 1: Is it possible use getXML/putXML cli operations for tables containig these $ columns
and how?
Now I found the method setSQLToXMLNameEscaping(true) and tried the same query using the modified
sample java code of XSU documentation. This time I got error result:
<?xml version = '1.0'?>
<ERROR>oracle.xml.sql.OracleXMLSQLException: You are using an old version of the gss library; thus, sql-xml name escaping is not supported.</ERROR>
Question 2: What is this gss library and is there up-to-date version available - and will it solve my
$ problem?
Thanks,
OlaviHi,
I was testing cli command java OracleXML getXML ....
getting following error result:
<?xml version = '1.0'?>
<ERROR>oracle.xml.sql.OracleXMLSQLException: Character '$' is not allowed in an XML tag name.</ERROR>
This was because the database column name included $ characters.
Question 1: Is it possible use getXML/putXML cli operations for tables containig these $ columns
and how?Please use alias in your SQL query for the column with $, like
select sys$rowno_info as rowinfo..OK for getXML but how to do this with putXML?
Now I found the method setSQLToXMLNameEscaping(true) and tried the same query using the modified
sample java code of XSU documentation. This time I got error result:
<?xml version = '1.0'?>
<ERROR>oracle.xml.sql.OracleXMLSQLException: You are using an old version of the gss library; thus, sql-xml name escaping is not supported.</ERROR>
Question 2: What is this gss library and is there up-to-date version available - and will it solve my
$ problem?gss libs is ithe nls_charset12.jar located in jdbc/lib.
Olavi
I added nls_charset12.jar dated july 2002 into my classpath without
success?
Olavi -
Problem in importing oracle.xml.sql.query.*
When i am importing this
import oracle.xml.sql.query.*;
it is giving me error that
"package oracle.xml.sql.query.* does not exist".
What Should i install or set .[from XmlRpc-Java]
As a result, my XML
is contained in a String instead of an InputStream.
It is possible to convert a String to an InputStream using
StringBufferInputStream, but this class is deprecated in favor of
StringReader (as StringBufferInputStream does not properly convert
characters into bytes).
For the default HTTP transport, an InputStreamReader could be used to
wrap the InputStream before calling parse().
Ultimately, the InputStream is converted to an InputSource for use by
the SAX parser. InputSource will accept a Reader as well.
[from XmlRpc-Java]
There should be a way to go from "getXMLString()" to "parse(Reader)" also. In the meantime I'm stuck.
null -
Class oracle.xml.sql.query.OracleXMLQuery not found in import
I tried to perform load java using a non-sys user :
loadjava -user user1/passwd -v -o -r Archive.java
but encountered the following error:
Errors in Archive:
ORA-29535: source requires recompilation
Archive:11: Class oracle.xml.sql.query.OracleXMLQuery not found in import.
Info: 1 errors
loadjava: 3 errors
But if I use sys user I don't have any error:
loadjava -user sys/manager -v -o -r Arachive.java
initialization complete
loading : Archive
creating : Archive
resolver :
resolving: Archive
Why is this so?
ANy security setup that I missed?
Thanks in advance.
Note:
my Archive.java file contains:
// Core Java Classes
import java.io.*;
import java.sql.*;
// Oracle Java classes
import oracle.jdbc.*;
import oracle.jdbc.driver.*;
import oracle.xml.sql.query.OracleXMLQuery;
null<BLOCKQUOTE><font size="1" face="Verdana, Arial">quote:</font><HR>Originally posted by Azman Diron ([email protected]):
I tried to perform load java using a non-sys user :
loadjava -user user1/passwd -v -o -r Archive.java
but encountered the following error:
Errors in Archive:
ORA-29535: source requires recompilation
Archive:11: Class oracle.xml.sql.query.OracleXMLQuery not found in import.
Info: 1 errors
loadjava: 3 errors
But if I use sys user I don't have any error:
loadjava -user sys/manager -v -o -r Arachive.java
initialization complete
loading : Archive
creating : Archive
resolver :
resolving: Archive
Why is this so?
ANy security setup that I missed?
Thanks in advance.
Note:
my Archive.java file contains:
// Core Java Classes
import java.io.*;
import java.sql.*;
// Oracle Java classes
import oracle.jdbc.*;
import oracle.jdbc.driver.*;
import oracle.xml.sql.query.OracleXMLQuery;
<HR></BLOCKQUOTE>
Managed to solve this problem.
Drop all xml objects owned by sys and user1.
Reload xml objcets for user1 with -force option.
null
Maybe you are looking for
-
Can no longer access hotmail via Mail on Mac Pro
I have set up Mail on my Pro OSX 10.6.8 long ago with my POP server password. Now it will not fetch mail, asking for my password. I reenter the correct password, but it still will not work. It again asks for my password. Reboot did not cure the probl
-
i am using a z program to block incoming invoice if it is pending more then 90 days. program is working for f-58 and but it is not working for f-44, item should not be clear from f-44 if payment is block for that invoice pls help me
-
Hi all, As we know In FBL3N report displays Line item wise details. when i click partcular line item it will displays respective line details.But i dont want to see respective line items details,i want to restrict that how can i achive in this regard
-
How do I convert a Microsoft Word file to a fillable PDF?
-
Hi, Friend: We are using BPM to collect two type of message (Msg1 and Msg2) and map to target message (Msg3), ------Receive1------- Start --Fork(start) Fork(stop) ---Transformation--Send