[Oracle JDBC Driver][Oracle]ORA-31011: XML parsing failed
Hi,
I have got the following error when i tired to upload an XML file in my application. My application will insert the XML file in to Oracle 10g data base table. (Our DB server is Oracle 10g).
The error is as follows:-
[BEA][Oracle JDBC Driver][Oracle]ORA-31011: XML parsing failed
ORA-19202: Error occurred in XML processing
LPX-00004: internal error "MultiChar overflow"
Error at line 20795
ORA-06512: at "SYS.XMLTYPE", line 254
ORA-06512: at line 1
The XML file contains more than 90,000 lines in it. Please help.
Thanks!
Siva K.
Is this a specific problem with 10G release? We are using 10.2.0.4.0.
Using CLOB, We think that this may hit the performance of the application as we are using large XML files.
Similar Messages
-
ORA-31011: XML parsing failed ORA-19202: Error occurred in XML processing
Hi,
I am trying to update an already existing Sales Order through PO Change Inbound 860. When i am performing changes in the line quantity and scheduled ship date with operation code as "Update" then it is successfully updating the Order and also we are able to generate the POAck for the updated sales order lines. But when i am rejecting one of the PO change lines by checking rejected flag, then order is getting imported successfully(I mean sales order is getting updated successfully) but during the POAck Generation i.e. 865 its raising "*ORA-31011: XML parsing failed ORA-19202: Error occurred in XML processing LPX-00103: Warning: document structure does not match DTD Error at line 1*" at XML Gateway. we are using XML Gateway to process the orders, can somebody help me to get rid of this issue. Thanks in advance.
Thanks,
Sunil ChauhanHi Kishan
Thanks for the reply.
Because this is an outbound transaction so i can not provide you the XML file as we are facing issue to generate the same. Also we are using oracle seeded PO outbound Ack map.
In addition i can provide you the DTD file.
<!-- ==================================================== -->
<!ENTITY % RESOURCES SYSTEM "oagis_resources.dtd">
%RESOURCES;
<!-- ==================================================== -->
<!ELEMENT ACKNOWLEDGE_PO_008 (CNTROLAREA, DATAAREA+)>
<!ATTLIST VERB
value CDATA #FIXED "ACKNOWLEDGE"
>
<!ATTLIST NOUN
value CDATA #FIXED "PO"
>
<!ATTLIST REVISION
value CDATA #FIXED "008"
>
<!ELEMENT DATAAREA (ACKNOWLEDGE_PO)
>
<!ELEMENT ACKNOWLEDGE_PO (POORDERHDR, POORDERLIN*)
>
<!ELEMENT POORDERHDR ((%DATETIME.DOCUMENT;)?, (%OPERAMT.EXTENDED.T;)?, POID, POTYPE, ACKREQUEST?, CONTRACTB?, CONTRACTS?, DESCRIPTN?, NOTES*, OPRAMTAUTH?, PORELEASE?, TAXWHEXMPT?, USERAREA?, ACKHEADER, ATTCHREF*, CHARGE*, PARTNER*, POTERM*)
>
<!ELEMENT ACKHEADER (SENDER, (%DATETIME.PROMDELV;)?, (%DATETIME.PROMSHIP;)?, ACKCODE, DESCRIPTN?, NOTES*, SALESORDID?, USERAREA?)
>
<!ELEMENT POTERM (DESCRIPTN?, TERMID?, ((DAYOFMONTH, PROXMONTH) | DAYSNUM), ((%OPERAMT.EXTENDED.T;) | (%QUANTITY.PERCENT;)), USERAREA?)
>
<!ELEMENT POORDERLIN ((%QUANTITY.ORDERED;), (%DATETIME.NEEDDELV;)?, (%OPERAMT.UNIT.T;)?, POLINENUM, DRAWING?, HAZRDMATL?, ITEMRV?, ITEMRVX?, NOTES*, PACKING?, POLNSTATUS?, TAXWHEXMPT?, ((DESCRIPTN, ITEM?, ITEMX?, UPC?) | (ITEM, ITEMX?, UPC?) | (ITEMX, UPC?) | (UPC)), USERAREA?, ACKLINE*, ATTCHREF*, CHARGE*, DISTRIBUTN*, PARTNER*, POTERM*, POSUBLINE*, POLINESCHD*)
>
<!ELEMENT ACKLINE ((%DATETIME.PROMDELV;)?, (%DATETIME.PROMSHIP;)?, (%QUANTITY.ORDERED;)?, ACKCODE, NOTES*, SALESORDID?, USERAREA?)
>
<!ELEMENT POSUBLINE ((%QUANTITY.ITEM;), DRAWING?, ITEMRV?, ITEMRVX?, PSBLINENUM?, ((DESCRIPTN, ITEM?, ITEMX?, UPC?) | (ITEM, ITEMX?, UPC?) | (ITEMX, UPC?) | (UPC)), USERAREA?)>
<!ELEMENT POLINESCHD ((%DATETIME.NEEDDELV;), (%QUANTITY.ORDERED;), DESCRIPTN?, PSCLINENUM?, USERAREA?)
>
Thanks,S
--Sunil -
URGENT HELP !!! ORA-31011: XML parsing failed
Hi,
Oracle 9.2.0.4
I've run into
ORA-31011: XML parsing failed ORA-19202: Error
occurred in XML processing LPX-00247: invalid
Document Type Declaration (DTD) Error at line 1
ORA-06512: at line 15
during updateXML operation under CLOB resource.
It seems to me, I can't update created resource
at all.
Is anybody knows the workaround ?
Please, help !!!
Thanks,
ViacheslavNo, it is an html file. For test purpose I've taken
welcome.html from ORACLE_HOME installation. Here are
my test:
declare
res0 bfile := BFILENAME('TEMPDIR', 'welcome.html');
res clob;
Amount INTEGER := 4000;
b BOOLEAN;
begin
Amount:=DBMS_LOB.getlength(res0);
DBMS_LOB.CREATETEMPORARY(res,TRUE);
DBMS_LOB.OPEN(res0, DBMS_LOB.LOB_READONLY);
DBMS_LOB.OPEN(res, DBMS_LOB.LOB_READWRITE);
DBMS_LOB.LOADFROMFILE(res, res0,Amount);
--DBMS_LOB.CLOSE(res0);
b:=DBMS_XDB.createresource
('/MyCONTENT/welcome.html',res);
commit;
end;
declare
res0 bfile := BFILENAME('TEMPDIR', 'welcome.html');
clob1 clob;
amt number := dbms_lob.lobmaxsize;
src_offset number := 1 ;
dst_offset number := 1 ;
lang_ctx number := dbms_lob.default_lang_ctx;
warning number;
Amount INTEGER := 4000;
begin
Amount:=DBMS_LOB.getlength(res0);
DBMS_LOB.CREATETEMPORARY(clob1 ,TRUE);
DBMS_LOB.OPEN(res0, DBMS_LOB.LOB_READONLY);
DBMS_LOB.OPEN(clob1 , DBMS_LOB.LOB_READWRITE);
-- DBMS_LOB.LOADFROMFILE(clob1 , res0,Amount);
dbms_lob.LOADCLOBFROMFILE(clob1 ,res0, amt, dst_offset,
src_offset,dbms_lob.default_csid, lang_ctx,warning) ;
UPDATE xdb.resource_view SET res=updatexml
(res,'/Resource/Contents/*',
WHERE any_path= '/MyCONTENT/welcome.html';
commit;
--dbms_lob.filecloseall() ;
end; -
ORA-31011: XML parsing failed
Hi
I am on client version 9.2.0.4 and try to test the following query
select XMLELEMENT("DATE", sysdate) from dual;
I am getting the error ORA-31011:XML parsing failed
Can anybody suggest a solution?
Thanks for your reply in advance
MuraliMurali ,
you have mentioned about the client version but what is the server version to which
you are connected ? Pls checkout that. it should be 9.2.0.4 and above.
Connected to:
Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.4.0 - Production
SQL> select XMLELEMENT("DATE", sysdate) from dual;
XMLELEMENT("DATE",SYSDATE)()
XMLTYPE()
SQL> ed
Wrote file afiedt.buf
1* select XMLELEMENT("DATE", sysdate).GetStringVal() from dual
SQL> /
XMLELEMENT("DATE",SYSDATE).GETSTRINGVAL()
<DATE>05-SEP-05</DATE>
SQL> Since my client version is 9.0.1.3.0 i have to use GetStringVal() method to extract the contents. -
XMLElement cause ORA-31011: XML parsing failed
Hi,
already simple examples,
e.g. like descibed in tech articles 'SQL in,XML out',
cause always error 31011.
What is wrong?
Is something missing in my installation?
Worng version?
SQL> select xmlelement("KUNDEID",KUNDEID) from DSL_KUNDE;
ERROR:
ORA-31011: XML parsing failed
But normal SQL works fine and data is available:
SQL> select kundeid from dsl_kunde;
KUNDEID
1
2
3
Here is the SQL*Plus login message
SQL*Plus: Release 9.2.0.1.0 - Production on Mi Nov 12 17:14:42 2003
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
Connected to:
Oracle9i Enterprise Edition Release 9.2.0.4.0 - 64bit Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.4.0 - ProductionPlease post this message at:
Forums Home » Oracle Technology Network (OTN) » Products » Database » XML DB -
Getting "ORA-31011: XML parsing failed" using xmlAGG as rownum exceeds 1000
I have a following script which is working and creating xml output when the rownum < 1000, but as the rownum <2000 clause is used, it is throwing "ORA-31011: XML parsing failed" error.
There are about 2 million recirds that I need to extract in the xml file. Is there any way I can do that without creating 500 files?
I am new in XML DB and any help/suggestion/input will be highly appreciated.
Thanks.
---------------- script--------------------
SET SERVEROUTPUT ON
DECLARE
v_xml XMLTYPE;
v_blob BLOB;
v_data_length NUMBER;
-- Loop Control Variables
v_offset NUMBER DEFAULT 1;
v_chunk CONSTANT NUMBER DEFAULT 4000;
-- v_ctx DBMS_XMLGen.ctxHandle;
v_file Utl_File.File_Type;
BEGIN
-- Create XML context.
SELECT XMLELEMENT("COMBO_NETWORK", XMLAGG (IFC_BILL_LOC))
INTO v_xml
FROM (
SELECT XMLELEMENT
("CLAIM",
XMLFOREST(
ib.clm_num as "CLM_NUM",
NVL(ib.old_clm_num,' ') as "ALT_CLM_NUM",
DECODE(ib.clm_stat_cde,1,'OPEN','CLOSED') as "CLM_STATUS",
ib.SSN as "SSN",
ib.CLMT_LAST_NAM as "LAST_NAME",
ib.CLMT_FIRST_NAM as "FIRST_NAME",
TO_CHAR(ib.CLMT_DOB,'RRRRMMDD') as "DOB",
TO_CHAR(ib.CLMT_DOI,'RRRRMMDD') as "DOI",
ib.ER_NAM as "EMPLOYER_NAME",
sflo.cde AS "DISTRICT_OFFICE",
ib.ADD_UPDTE_DEL_FLG as "ADD_UPDATE_DELETE",
XMLFOREST(ib.CLMT_FST_LINE_ADR||' '||ib.CLMT_SND_LINE_ADR as "STREET",
ib.CLMT_CITY_ADR AS "CITY",
ib.CLMT_STATE_ADR as "STATE",
ib.CLMT_ZIP_CDE_ADR as "ZIP",
' ' as "PHONE" ) AS "CLAIMNT_ADDRESS",
DECODE(ib.CLMT_GENDER,1,'M',2,'F',' ') as "CLAIMNT_GENDER",
XMLFOREST(ib.ADJ_LAST_NAM as "LAST_NAME",
ib.ADJ_FIRST_NAM as "FIRST_NAME",
au.PHONE_NUM as "PHONE",
au.USER_EMAIL as "EMAIL") as "ADJUSTER",
NVL(ib.CATASTROPHE_FLG,'N') as "CATASTROPHE_FLAG"
IFC_BILL_LOC
FROM IFACE_BILL_CLAIM_TRANS ib, SCIF_LOCATIONS sflo, APPLICATION_USERS au
WHERE ib.comb_transmit_dte IS NULL
AND ib.SFLO_IDN = sflo.idn
AND ib.adj_last_nam = UPPER(au.user_last_nam)
AND ib.adj_first_nam = UPPER(au.user_first_nam)
AND sflo.cde = 'NF'
AND rownum < 1000); -- Failes parsing as rownum < 2000 is used.
-- Turn the XML into a BLOB
v_blob := v_xml.getblobval (1);
v_data_length := DBMS_LOB.getlength (v_blob);
-- Output XML document to file.
v_file := Utl_File.FOpen('/u08/test/testdev/interface/out', 'result1.xml', 'wb', v_chunk);
LOOP
EXIT WHEN v_offset > v_data_length;
UTL_FILE.put_raw (v_file, DBMS_LOB.SUBSTR (v_blob, v_chunk, v_offset),
TRUE);
v_offset := v_offset + v_chunk;
END LOOP;
Utl_File.FClose(v_file);
EXCEPTION
WHEN NO_DATA_FOUND
THEN
-- We won't write any data, or even open the file,
-- if the query return no rows
NULL;
END;
--------------------- script end--------------------------
Following is the version of y database:
SQL> col comp_name format a45
SELECT comp_name, status, substr(version,1,10) as version
FROM dba_registry;
SQL> SQL> 2
COMP_NAME STATUS VERSION
Oracle Database Catalog Views VALID 10.2.0.4.0
Oracle Database Packages and Types VALID 10.2.0.4.0
JServer JAVA Virtual Machine VALID 10.2.0.4.0
Oracle Database Java Packages VALID 10.2.0.4.0
Oracle XDK VALID 10.2.0.4.0
Oracle XML Database VALID 10.2.0.4.0
6 rows selected.
SQL>Edited by: mdrake on Feb 4, 2010 3:55 PMIf you have the fix for bug 8246403 you can also control the behavoir with events. This avoids having to use explict translate operations on each column thay may contain bad data. Note this patch also has the effect of replacing the ORA-31011 error with the ORA-31061 error. Also note it is likely this error number will be changed again in the near future.
SQL> --
SQL> -- Replace with ?
SQL> --
SQL> alter session set events = '19119 trace name context forever, level 0x100000'
2 /
Session altered.
SQL> select xmlElement
2 (
3 "Result",
4 xmlAgg
5 (
6 xmlElement("Data",MY_DATA)
7 )
8 )
9 from T1
10 /
XMLELEMENT("RESULT",XMLAGG(XMLELEMENT("DATA",MY_DATA)))
<Result><Data>AAAA</Data><Data>BB?BB</Data><Data>CCCC</Data></Result>
SQL> --
SQL> -- Replace with Character Reference
SQL> --
SQL> alter session set events = '19119 trace name context forever, level 0x200000'
2 /
Session altered.
SQL> select xmlElement
2 (
3 "Result",
4 xmlAgg
5 (
6 xmlElement("Data",MY_DATA)
7 )
8 )
9 from T1
10 /
XMLELEMENT("RESULT",XMLAGG(XMLELEMENT("DATA",MY_DATA)))
<Result><Data>AAAA</Data><Data>BB�BB</Data><Data>CCCC</Data></Result>
SQL>
SQL> --
SQL> -- Remove Bad Characters
SQL> --
SQL> alter session set events = '19119 trace name context forever, level 0x400000'
2 /
Session altered.
SQL> select xmlElement
2 (
3 "Result",
4 xmlAgg
5 (
6 xmlElement("Data",MY_DATA)
7 )
8 )
9 from T1
10 /
XMLELEMENT("RESULT",XMLAGG(XMLELEMENT("DATA",MY_DATA)))
<Result><Data>AAAA</Data><Data>BBBB</Data><Data>CCCC</Data></Result>
SQL>
SQL>Edited by: mdrake on Feb 4, 2010 3:45 PM
Edited by: mdrake on Feb 4, 2010 3:46 PM
Edited by: mdrake on Feb 4, 2010 3:47 PM -
Calling Web Service from PL/SQL (ORA-31011: XML parsing failed)
hi all,
i want to invoke a web service from PL/SQL.
i found a soap_api package from "Tim Hall".
but it gives error in "ealtas.soap_api.invoke function"
ORA-31011: XML parsing failed
ORA-19202: Error occurred in XML processing
LPX-00007: unexpected end-of-file encountered
ORA-06512: at "SYS.XMLTYPE", line 48
ORA-06512: at "EALTAS.SOAP_API", line 135
ORA-06512: at line 44
set scan off;
declare
P_ADRES_WS VARCHAR2(100) := 'http://<host>:<port>/dswsbobje/qaawsservices/biws?wsdl=1&cuid=AVhBxL14I2dDjz8yFoznRLY';
P_ENVELOPE VARCHAR2(32767);
P_FNC VARCHAR2(256) := 'runQueryAsAService';
ol_req ealtas.soap_api.t_request;
ol_resp ealtas.soap_api.t_response;
message varchar2(500);
BEGIN
p_envelope := '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:db="DB_SUBS_BUDGET">
<soapenv:Body>
<db:runQueryAsAService>
<db:login>DWH_BO</db:login>
<db:password>Pass1234</db:password>
</db:runQueryAsAService>
</soapenv:Body>
</soapenv:Envelope>
ol_req := ealtas.soap_api.new_request(P_FNC, 'xmlns="'||P_ADRES_WS||'"');
ol_resp := ealtas.soap_api.invoke(ol_req, P_ADRES_WS, p_fnc,P_ENVELOPE);
ealtas.soap_api.show_envelope(p_envelope);
message := ealtas.soap_api.get_return_value(ol_resp, 'Db_Timeid', 'xmlns:m="'||P_ADRES_WS||'"');
DBMS_OUTPUT.PUT_LINE('AAAA -'||message);
end;
thanks.
ealtas.AlexAnd thanks for your help.
ACL is ok.
can you help me about how can i edit this function. i tried many times but i could not do it :( .
web service url : <host>:<port>/dswsbobje/qaawsservices/biws?WSDL=1&cuid=AVhBxL14I2dDjz8yFoznRLY
what must be these variables values ?
l_url :=
l_namespace :=
l_method :=
l_soap_action :=
l_result_name :=
this is the xml;
<?xml version="1.0" encoding="UTF-8" ?>
- <definitions xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:s0="DB_SUBS_BUDGET" xmlns:tns1="dsws.businessobjects.com" targetNamespace="DB_SUBS_BUDGET" xmlns="http://schemas.xmlsoap.org/wsdl/" name="queryasaservice">
- <types>
- <s:schema elementFormDefault="qualified" targetNamespace="DB_SUBS_BUDGET">
- <s:element name="runQueryAsAService">
- <s:complexType>
- <s:sequence>
<s:element name="login" type="s:string" />
<s:element name="password" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
- <s:complexType name="Row">
- <s:sequence>
<s:element name="Db_Timeid" type="s:string" nillable="true" />
<s:element name="Db_Tariff" type="s:string" nillable="true" />
<s:element name="Grossadds" type="s:double" nillable="true" />
<s:element name="Cancellations" type="s:double" nillable="true" />
<s:element name="Netadds" type="s:double" nillable="true" />
<s:element name="Subs" type="s:double" nillable="true" />
<s:element name="Churn_P" type="s:double" nillable="true" />
</s:sequence>
</s:complexType>
- <s:complexType name="Table">
- <s:sequence>
<s:element name="row" maxOccurs="unbounded" type="s0:Row" />
</s:sequence>
</s:complexType>
- <s:element name="runQueryAsAServiceResponse">
- <s:complexType>
- <s:sequence>
<s:element name="table" type="s0:Table" />
<s:element name="message" type="s:string" />
<s:element name="creatorname" type="s:string" />
<s:element name="creationdate" type="s:dateTime" />
<s:element name="creationdateformated" type="s:string" />
<s:element name="description" type="s:string" />
<s:element name="universe" type="s:string" />
<s:element name="queryruntime" type="s:int" />
<s:element name="fetchedrows" type="s:int" />
</s:sequence>
</s:complexType>
</s:element>
- <s:element name="QaaWSHeader">
- <s:complexType>
- <s:sequence>
<s:element name="sessionID" type="s:string" minOccurs="0" maxOccurs="1" nillable="true" />
<s:element name="serializedSession" type="s:string" minOccurs="0" maxOccurs="1" nillable="true" />
</s:sequence>
</s:complexType>
</s:element>
</s:schema>
</types>
- <message name="runQueryAsAServiceSoapIn">
<part name="parameters" element="s0:runQueryAsAService" />
<part name="request_header" element="s0:QaaWSHeader" />
</message>
- <message name="runQueryAsAServiceSoapOut">
<part name="parameters" element="s0:runQueryAsAServiceResponse" />
</message>
- <portType name="QueryAsAServiceSoap">
- <operation name="runQueryAsAService">
<documentation>Get Web Service Provider server info</documentation>
<input message="s0:runQueryAsAServiceSoapIn" />
<output message="s0:runQueryAsAServiceSoapOut" />
</operation>
</portType>
- <binding name="QueryAsAServiceSoap" type="s0:QueryAsAServiceSoap">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
- <operation name="runQueryAsAService">
<soap:operation soapAction="DB_SUBS_BUDGET/runQueryAsAService" style="document" />
- <input>
- <soap:header message="s0:runQueryAsAServiceSoapIn" part="request_header" use="literal">
<soap:headerfault message="s0:runQueryAsAServiceSoapIn" part="request_header" use="literal" />
</soap:header>
<soap:body use="literal" parts="parameters" />
</input>
- <output>
<soap:body use="literal" />
</output>
</operation>
</binding>
- <service name="DB_SUBS_BUDGET">
<documentation />
- <port name="QueryAsAServiceSoap" binding="s0:QueryAsAServiceSoap">
<soap:address location="http://<host>:<port>/dswsbobje/qaawsservices/queryasaservice?&cuid=AVhBxL14I2dDjz8yFoznRLY&authType=secEnterprise&locale=en_US&timeout=60&ConvertAnyType=false" />
</port>
</service>
</definitions> -
ORA-31011: XML parsing failed ORA-19202: Error occurred in XML processing L
Hi There,
I am trying to load XML data [Given Below] into a table using "Load XML Data" option.
<?xml version="1.0"?>
<ROWSET>
<ROW>
<ID>13</ID>
<TYPE_SEQ>8</TYPE_SEQ>
<TYPE>B749</TYPE>
<TYPE_DESC>B758</_TYPE_DESC>
<EFFECTIVE_FROM>2099-01-01</EFFECTIVE_FROM>
<EFFECTIVE_TO>2099-01-01</EFFECTIVE_TO>
<CREATED_BY>958344</CREATED_BY>
<CREATED_ON>2099-01-01</CREATED_ON>
<UPDATED_BY>172283</UPDATED_BY>
<UPDATED_ON>2099-01-01</UPDATED_ON>
</ROW>
</ROWSET>
It throws the following error.
ORA-31011: XML parsing failed ORA-19202: Error occurred in XML processing LPX-00222: error received from SAX callback function
Can any one advice the solution please.
-Sudheer.Hi Sudheer,
This is caused by the date format you are using. Probably it is not matching with your NLS settings. Check your NLS settings, what the date format is, and use that in the XML.
Check it with this code:
SELECT XMLELEMENT("date", sysdate) FROM dual;Make sure, you have your NLS_DATE settings in the same format.
Check it with:
SELECT * FROM v$nls_parameters WHERE parameter = 'NLS_DATE_FORMAT'And then make sure it is the same by setting for example:
ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD';Greetings,
Rutger -
I am using JBuilder5 which comes with jdk1.3. I have installed oracle 8.1.7 Enterprise version.
I am using Win NT 4.0.
I have set the PATH variable as E:\oracle\ora81\lib; and
CLASSPATH as : E:\oracle\ora81\jdbc\lib\classes12.zip;E:\oracle\ora81\jdbc\lib\nls_charset12.zip;
My JDBC code is
package sample2;
import java.sql.*;
public class Two {
Connection con;
Statement st;
public Two() {
try{
Class.forName("oracle.jdbc.driver.OracleDriver");
con = DriverManager.getConnection("jdbc:oracle:oci8:@First","scott","tiger");
st = con.createStatement();
ResultSet rs = st.executeQuery("Select * from Book");
while(rs.next())
System.out.print(rs.getInt("ID")+"\t");
System.out.print(rs.getString("title")+"\t");
System.out.print(rs.getString("author")+"\t");
System.out.print(rs.getString("subject")+"\t");
System.out.println(rs.getInt("copies")+"\t");
st.close();
con.close();
catch(Exception ex)
System.out.println("Exception : " + ex.toString());
public static void main(String[] args) {
Two two1 = new Two();
I am getting this exception:
Exception : java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver
I can understand that the classpath for the driver is the problem here.
Also, I tried to run this file without JBuilder as a independent file on a notepad. Even then this exception is thrown.
I have set the PATH to E:\oracle\ora81\bin and also to E:\oracle\ora81\lib.
I ran "echo %classpath%" from my command prompt and this is what i am getting.
E:\JBuilder5\jdk1.3\lib\tools.jar;E:\JBuilder5\jdk1.3\dt.jar;E:\oracle\ora81\jdbc\lib\classes12.zip;E:
\oracle\ora81\jdbc\lib\nls_charset12.zip;
I searched solution for this probldem in Sun JDC Forum itself. Many of them suggested to unzip classes12.zip and create jar file and add it in the classpath. Alos, some have suggested to copy the classes12.zip in home directory and then include this path in the classpath. I tried those solutions also. But, nothing seem to work.
Somebody help me fix this problem.
Thanks in advance.Jbuilder5 uses a different means of loading dependent classes. Use menu : Tools -->Configure Libraries - Click New and setup a new named library that points to classes12.zip .
Then include this in u'r required Libraries of your project using menu Project --> Project Properties - required Libraries tab.
I don't thnk Jbuilder5 even refers to CLASSPATH set in Windows NT environement. Path may need to be set to include oracle/ora81/bin directory though.
Hope this helps. -
XML parsing failed - Works in Oracle Developer fails in SQLplus
Hello,
I am trying to figure out what could possibly be causing my XML parsing to fail from sqlplus. Basically the exact same sql script fails with the following error when run from sqlplus but works fine in Oracle Developer.
Now I have read a number of posts talking about the NLS_Lang and characterset issues. But these are all running on the same machine.
Error Message Received:
ORA-31011: XML parsing failed
ORA-19202: Error occurred in XML processing
LPX-00222: error received from SAX callback function
ORA-06512: at "SYS.DBMS_XMLSTORE", line 78
ORA-06512: at line 53
Exact SQL Script
DECLARE
insCtx DBMS_XMLStore.ctxType;
rows NUMBER;
xmldoc CLOB :=
'<DepotData DepotCode="B106">
<tblPoint_of_Call>
<DEPOTCODE>B106</DEPOTCODE>
<MASTERKEY>2077</MASTERKEY>
<ADDR_ID>45286159</ADDR_ID>
<ADDR_MAIL_ID>45286160</ADDR_MAIL_ID>
<STREETBLOCK_KEY>45</STREETBLOCK_KEY>
<PC_ID>19603417</PC_ID>
<ST_ID>40034414</ST_ID>
<BUILDING_KEY>0</BUILDING_KEY>
<ADDR_NUM>505</ADDR_NUM>
<POCTYPE>154</POCTYPE>
<RECEPTACLETYPE>964</RECEPTACLETYPE>
<TOTALPOCS>1</TOTALPOCS>
<TOTALPOCSOCCUPIED>1</TOTALPOCSOCCUPIED>
<TOTALADMAIL>1</TOTALADMAIL>
<OLD038POC>0</OLD038POC>
<OCCUPIED>1</OCCUPIED>
<ADMAIL>1</ADMAIL>
<BAGGER>0</BAGGER>
<SORTED>1</SORTED>
<DELIVERED>1</DELIVERED>
<AMOBLIGATORY>0</AMOBLIGATORY>
<POCICANDIDATE>0</POCICANDIDATE>
<DELIVERYSEQUENCE>10</DELIVERYSEQUENCE>
<NUMSEPARATIONS>0.50</NUMSEPARATIONS>
<SEPSGROUPID>0</SEPSGROUPID>
<DELETED>0</DELETED>
<CARDID>0</CARDID>
<CARD>0</CARD>
<FORCECARD>0</FORCECARD>
<DNC>0</DNC>
<PRINTED>0</PRINTED>
<A12CARD>0</A12CARD>
<EXTRACARDS>0</EXTRACARDS>
<DSOUPDATECODE>0</DSOUPDATECODE>
<TRANSACTION_TYPE>0</TRANSACTION_TYPE>
<UPDATE_TYPE>0</UPDATE_TYPE>
<SORTSEQUENCE>10</SORTSEQUENCE>
<BUILDINGBASE>0</BUILDINGBASE>
</tblPoint_of_Call>
</DepotData>';
BEGIN
insCtx := DBMS_XMLStore.newContext('AIMPRIME.TBLPOINT_OF_CALL'); -- get saved context
-- set the columns to be updated as a list of values
-- Now insert the doc.
-- This will only insert into EMPNO, SAL and HIREDATE columns
DBMS_XMLStore.setRowTag(insCtx,'tblPoint_of_Call');
rows := DBMS_XMLStore.insertXML(insCtx, xmlDoc);
-- Close the context
DBMS_XMLStore.closeContext(insCtx);
END;
System Information:
Oracle XE on windows XP. Everything is running on the same machine, sqlplus, Oracle Developer and the database are all on the same machine.
If you need any more information please let me know, and how to get the information you want. I am not a DBA so I don't know how to do a lot of things with oracle, but I do know that this SQL should be working.NLS...read up on them
on the same machine, yeah and...?
(1) c:\> set NLS_LANG=.....
(2) c:\> sqlplus
-- sqlplus has the active nls settings set from (1)
3) you now connect to a database
- this database has an NLS character settings that where set during using a spfile or pfile
- or, as in the case of the characterset, was defined and set once, during the creation of the database.
So...
Your NLS settings in (1) can be different from the ones that are active in the database (3).
Your NLS settings are / can be set on windows on 5 levels
In the registry under /software/oracle:
1) on HKEY_LOCAL_MACHINE
2) on HKEY LOCAL USER
In the envionment settings from windows under control panel, system, advanced, environment settings:
3) on system level
4) on user level
5) On command level via explicitly setting the parameter before starting the actual program
So in all, you can have the case where the NLS settings from sqlplus or Oracle Developer or the database are all different.
http://www.oracle.com/technology/tech/globalization/htdocs/nls_lang%20faq.htm -
Urgent- xml parsing failed - xmlelement
hi
what am i doing wrong here?
oracle 10.2.0.1
AL32UTF8 charset.
trying to generate an xml using xdk
running this
SELECT XMLELEMENT("date", sysdate) FROM dual
expecting this
<date>2005-10-25</date>
getting this
ORA-31011: XML parsing failed
tried this:
ALTER SESSION SET NLS_DATE_FORMAT = 'DD-MM-YYYY'
result: session altered
tried re-running select query, but same bad result.
dbms_xmlgen,xmlagg and other commands run fine.
i need to do this so that i can use special inline formatting such as this:
<sa>
<object class="asdad" name="asd">
<attribute name="as">
<string>asd</string>
</attribute>
</object>
<object>
</object>
</sa>
setformattype doesnt help in xmlgen since such format (<object class="asd" name="sad">) doesnt seem to be possible.
YELP!
is there a workaround possible without using xmlelement? what am i doing wrong in xmlelement??XML Element isn't part of XDK at all. It's a part of the SQL/XML publishing capability of XML DB. Can you make sure that you do not have something that is masquerading as XMLElement on your system
Eg make sure you get this output
SQL> desc XMLELEMENT
ERROR:
ORA-04043: object XMLELEMENT does not existIf something get's described by the describe please drop it..
Can you try
SQL> select xmlElement("FOO",'baa') from dual;
XMLELEMENT("FOO",'BAA')
<FOO>baa</FOO>and
SQL> select XMLFOREST('baa' as "FOO") from dual;
XMLFOREST('BAA'AS"FOO")
<FOO>baa</FOO> -
I tried to parse an XML file in a directory using PL/SQL code below and to display it in the screen
create or replace procedure xmlcheck
as
zbfile BFILE;
zclob CLOB;
zparser dbms_xmlparser.Parser;
zdoc dbms_xmldom.DOMDocument;
znl dbms_xmldom.DOMNodeList;
zn dbms_xmldom.DOMNode;
ztemp VARCHAR2(1000);
TYPE t_type IS TABLE OF emp%ROWTYPE;
t_tab t_type := t_type();
BEGIN
zbfile := BFileName('FILDIR', '1.xml');
dbms_lob.createtemporary(zclob, cache=>FALSE);
dbms_lob.open(zbfile, dbms_lob.lob_readonly);
dbms_lob.loadFromFile(dest_lob => zclob,
src_lob => zbfile,
amount => dbms_lob.getLength(zbfile));
dbms_lob.close(zbfile); --Closes the internal LOB
zparser := dbms_xmlparser.newParser;
dbms_xmlparser.parseClob(zparser, zclob);
zdoc := dbms_xmlparser.getDocument(zparser);
dbms_lob.freetemporary(zclob);
dbms_xmlparser.freeParser(zparser);
znl := dbms_xslprocessor.selectNodes(dbms_xmldom.makeNode(zdoc),'/EMPLOYEES/EMP');
FOR cur_emp IN 0 .. dbms_xmldom.getLength(znl) - 1 LOOP
zn := dbms_xmldom.item(znl, cur_emp);
t_tab.extend;
dbms_xslprocessor.valueOf(zn,'EMPNO/text()',t_tab(t_tab.last).eno,null);
dbms_xslprocessor.valueOf(zn,'ENAME/text()',t_tab(t_tab.last).ename,null);
END LOOP;
-- Insert data into the real EMP table from the table collection.
-- Form better performance multiple collections should be used to allow
-- bulk binding using the FORALL construct but this would make the code
-- too long-winded for this example.
FOR cur_emp IN t_tab.first .. t_tab.last LOOP
dbms_output.put_line('E No: '|| t_tab(cur_emp).eno ||', Ename: ' ||t_tab(cur_emp).ename);
END LOOP;
dbms_xmldom.freeDocument(zdoc);
EXCEPTION
WHEN OTHERS THEN
raise_application_error (-20110,'Error Occurred' || sqlerrm);
dbms_lob.freetemporary(zclob);
dbms_xmlparser.freeParser(zparser);
dbms_xmldom.freeDocument(zdoc);
END;
but this throws an error mentioned below (that too only when i add exception handling)
ERROR at line 1:
ORA-20110: Error Occurred
ORA-31011: XML parsing failed
ORA-19202: Error occurred in XML processing
LPX-00210: expected '<' instead of '<'
Error at line 1
ORA-06512: at "SYS.XMLCHECK", line 110
ORA-06512: at line 1
Im new to handling XML files with oracle, can anyone suggest what can be the cause?
Thanks.sorry here is the right code.
create table emp(eno number(10), ename varchar2(100))
create or replace procedure xmlcheck
as
zbfile BFILE;
zclob CLOB;
zparser dbms_xmlparser.Parser;
zdoc dbms_xmldom.DOMDocument;
znl dbms_xmldom.DOMNodeList;
zn dbms_xmldom.DOMNode;
ztemp VARCHAR2(1000);
TYPE t_type IS TABLE OF emp%ROWTYPE;
t_tab t_type := t_type();
BEGIN
zbfile := BFileName('FILDIR', '1.xml');
dbms_lob.createtemporary(zclob, cache=>FALSE);
dbms_lob.open(zbfile, dbms_lob.lob_readonly);
dbms_lob.loadFromFile(dest_lob => zclob,
src_lob => zbfile,
amount => dbms_lob.getLength(zbfile));
dbms_lob.close(zbfile); --Closes the internal LOB
zparser := dbms_xmlparser.newParser;
dbms_xmlparser.parseClob(zparser, zclob);
zdoc := dbms_xmlparser.getDocument(zparser);
dbms_lob.freetemporary(zclob);
dbms_xmlparser.freeParser(zparser);
znl := dbms_xslprocessor.selectNodes(dbms_xmldom.makeNode(zdoc),'/EMPLOYEES/EMP');
FOR cur_emp IN 0 .. dbms_xmldom.getLength(znl) - 1 LOOP
zn := dbms_xmldom.item(znl, cur_emp);
t_tab.extend;
dbms_xslprocessor.valueOf(zn,'EMPNO/text()',t_tab(t_tab.last).eno,null);
dbms_xslprocessor.valueOf(zn,'ENAME/text()',t_tab(t_tab.last).ename,null);
END LOOP;
FOR cur_emp IN t_tab.first .. t_tab.last LOOP
dbms_output.put_line('E No: '|| t_tab(cur_emp).eno ||', Ename: ' ||t_tab(cur_emp).ename);
END LOOP;
dbms_xmldom.freeDocument(zdoc);
EXCEPTION
WHEN OTHERS THEN
raise_application_error (-20110,'Error Occurred' || sqlerrm);
dbms_lob.freetemporary(zclob);
dbms_xmlparser.freeParser(zparser);
dbms_xmldom.freeDocument(zdoc);
END;
and the error message that i receive after adding exception handling.
ERROR at line 1:
ORA-20110: Error Occurred
ORA-31011: XML parsing failed
ORA-19202: Error occurred in XML processing
LPX-00210: expected '<' instead of '<'
Error at line 1
ORA-06512: at "SYS.XMLCHECK", line 110
ORA-06512: at line 1
can anyone pls suggest a corrective action?
Thanks. -
XML parsing failed while select from my table with criteria
While select from my table an error displayed as
ORA-31011: XML parsing failed
ORA-19202: Error occurred in XML processing
LPX-00601: Invalid token in: '/<XML Path>/row[c24="SA0010001"]'
select * from category
where existsNode(xmlrecord, '/<XML Path>/row[c24="SA0010001"]') = 1;
xmlrecord
<row id="52843" xml:space="preserve">
<c1>Refund of Domestic Payment Order</c1>
<c2>Ref Dom Py Or</c2>
<c3>PLsql</c3>
<c20>1</c20>
<c21>62_TAABSINPUTT___OFS_TAABS</c21>
<c22>0803181605</c22>
<c23>62_TAABSINPUTT_OFS_TAABS</c23>
<c24>SA0010001</c24>
<c25>1</c25>
</row>Hi,
Did you copy that sample from some demo?
The part "<XML Path>" is meant to be replaced by a real XPath fragment.
Here, I think you may just want this :
select * from category
where existsNode(xmlrecord, '/row[c24="SA0010001"]') = 1;Edit : OK, just seen your previous post and the example given
Edited by: odie_63 on 6 juil. 2010 21:16 -
XML parsing failed : Try to update FCRM field
i created one field in fusion crm ,lead . and i have one table in my oracle EBS database i write one procedure which get data from table and pur into fcrm
when i call procedure with static value it perfactly alright but ,when try to use xml parsing for all records give following error
ORA-20001: An error was encountered - -31011 -ERRORORA-31011: XML parsing failed
ORA-19202: Error occurred in XML processing
LPX-00245: extra data after end of document
Error at line 1
ORA-06512: at "SCOTT.XX_LEAD_UPDATE", line 101
ORA-06512: at line 1
my procedure as follow :
CREATE OR REPLACE PROCEDURE xx_lead_update
--(p_leadid IN VARCHAR2,p_xx_kp_lead IN VARCHAR2)
IS
p_leadid VARCHAR2(50);
p_xx_kp_lead VARCHAR2(50);
CURSOR c1 IS
SELECT FCRM_LEADID,XX_KP_LEAD
FROM XX_KP_EBSLEAD
WHERE ID = 6;
-- Construct xml payload, which is used to invoke the service.
l_envelope VARCHAR2(32767) := '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:typ="http://xmlns.oracle.com/apps/marketing/leadMgmt/leads/leadService/types/" xmlns:lead="http://xmlns.oracle.com/oracle/apps/marketing/leadMgmt/leads/leadService/" xmlns:lead1="http://xmlns.oracle.com/apps/marketing/leadMgmt/leads/leadService/" xmlns:not="http://xmlns.oracle.com/apps/crmCommon/notes/noteService" xmlns:not1="http://xmlns.oracle.com/apps/crmCommon/notes/flex/noteDff/">
<soapenv:Header/>
<soapenv:Body>
<typ:updateSalesLead>
<typ:salesLead>
<lead:LeadId>'||p_leadid||'</lead:LeadId>
<lead:xx_kp_lead_c>'||p_xx_kp_lead||'</lead:xx_kp_lead_c>
</typ:salesLead>
</typ:updateSalesLead>
</soapenv:Body>
</soapenv:Envelope>';
--PartyId: 300000000912340
l_result VARCHAR2(32767) := null;
l_http_request UTL_HTTP.req;
l_http_response UTL_HTTP.resp;
v_len number;
v_txt Varchar2(32767);
soap_respond CLOB;
resp xmltype;
l_str long;
v_str varchar2(100);
BEGIN
OPEN c1;
LOOP
FETCH c1 INTO p_leadid,p_xx_kp_lead;
dbms_output.put_line ('p_xx_kp_lead '||p_xx_kp_lead);
dbms_output.put_line ('p_leadid: '||p_leadid);
-- Sets the Oracle wallet used for request, required for HTTPS
UTL_HTTP.set_wallet('file:/apps/oracle/dnlclone/10.2.0/wallet','test1234');
-- Creates new HTTP request
l_http_request := UTL_HTTP.begin_request('https://aes.crm.ap2.oraclecloud.com:443/mklLeads/SalesLeadService?WSDL', 'POST','HTTP/1.1');
-- Configure the authentication details on the request
UTL_HTTP.SET_AUTHENTICATION(l_http_request, '[email protected]', 'DNLcrm*1');
-- Configure the request content type to be xml and set the content length
UTL_HTTP.set_header(l_http_request, 'Content-Type', 'text/xml');
UTL_HTTP.set_header(l_http_request, 'Content-Length', LENGTH(l_envelope));
-- Set the SOAP action to be invoked; while the call works without this the value is expected to be set based on standards
UTL_HTTP.set_header(l_http_request, 'SOAPAction','http://xmlns.oracle.com/apps/marketing/leadMgmt/leads/leadService/');
-- Write the xml payload to the request.
UTL_HTTP.write_text(l_http_request, l_envelope);
-- Get the response
l_http_response := UTL_HTTP.get_response(l_http_request);
utl_http.get_header_by_name(l_http_response, 'Content-Length', v_len, 1); -- Obtain the length of the response
FOR i in 1..CEIL(v_len/32767) -- obtain response in 32K blocks just in case it is greater than 32K
LOOP
utl_http.read_text(l_http_response, v_txt, case when i < CEIL(v_len/32767) then 32767 else mod(v_len,32767) end);
soap_respond := soap_respond || v_txt; -- build up CLOB
END LOOP;
UTL_HTTP.END_RESPONSE(l_http_response);
resp:= xmltype.createxml(soap_respond); -- Convert CLOB to XMLTYPE
--Using extract or extractvalue methods, retrieve value from a particular element/tag in the xml
--v_str := resp.extract('/env:Envelope/env:Body/ns0:updateOpportunityResponse/ns2:result/ns3:EBSOrderNumber_c/text()','xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns0="http://xmlns.oracle.com/apps/sales/opptyMgmt/opportunities/opportunityService/types/" xmlns:ns2="http://xmlns.oracle.com/apps/sales/opptyMgmt/opportunities/opportunityService/types/" xmlns:ns3="http://xmlns.oracle.com/apps/sales/opptyMgmt/opportunities/opportunityService/"').getstringval();
l_str := resp.extract('/*').getstringval();
LOOP
EXIT
WHEN l_str IS NULL;
dbms_output.put_line (SUBSTR (l_str, 1, instr (l_str, chr(10)) - 1));
l_str := SUBSTR (l_str, instr (l_str, chr(10)) + 1);
END LOOP;
--dbms_output.put_line('EBS Order Number updated as: '||v_str);
EXIT WHEN c1%NOTFOUND;
END LOOP;
CLOSE c1;
COMMIT;
EXCEPTION
WHEN OTHERS THEN
--dbms_output.put_line('Exception');
RAISE_APPLICATION_ERROR(-20001,'An error was encountered - '
||SQLCODE||' -ERROR'||SQLERRM);
END;Hi,
Remove the exception handler (it's totally useless here) and tell us which line is really giving the error. -
The error occurs only, if I would like to retrieve the root "Datenblock" element. The root "Datenblock" element looks like:
<Datenblock ID="96">
<Blockinfo>
<Titel>Spezifikationsdoku Cutstar SM 72</Titel>
<Parent-ID>4</Parent-ID>
<Property Softwareversion="V41" Maschinentyp="SM 72"/>
<Property Softwareversion="V41" Maschinentyp="SM 152"/>
</Blockinfo>
<Blockinhalt>
<Link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest" xlink:href="datenblock_ID97.xml"/>
<Link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest" xlink:href="datenblock_ID98.xml"/>
<Link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest" xlink:href="datenblock_ID102.xml"/>
<Link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest" xlink:href="datenblock_ID104.xml"/>
</Blockinhalt>
</Datenblock>
Disolving the XLinks to retrieve the content of the specific included XML documents, I wrote an recursive PL/SQL function which would be started by my Java application and returns a CLOB containing all informations.
CREATE OR REPLACE FUNCTION retrieveDatablock(v_DatablockID IN NUMBER) RETURN CLOB
IS
-- v_xmldocument XMLTYPE;
v_blockcontent XMLTYPE;
v_block XMLTYPE;
v_blockinfo XMLTYPE;
v_datablock XMLTYPE;
v_tempBlock CLOB;
v_id Datenbloecke.DatenblockID%TYPE;
v_datablockComplete CLOB;
v_end CLOB;
TYPE datablockrecord IS RECORD (fileName Datenbloecke.Dateiname%TYPE);
r_datablock datablockrecord;
CURSOR c_datablock IS select extractValue(value(x),'Link@xlink:href','xmlns:xlink="http://www.w3.org/1999/xlink"') from datenbloecke, table(xmlsequence(extract(Blockinhalt,'/Blockinhalt/Link'))) x where DatenblockID = v_DatablockID;
BEGIN
-- Blockinfo selektieren
select XMLELEMENT("Blockinfo", XMLCONCAT(XMLELEMENT("Titel",titel),(select XMLAGG(XMLELEMENT("Parent-ID",ElternID)) from Datenblock_Zuordnung dz where dz.DatenblockID = v_DatablockID), (select XMLAGG (XMLELEMENT("Property",XMLATTRIBUTES(Softwareversion as "Softwareversion",Maschinentyp as "Maschinentyp"))) from DatenblockProperties dp where dp.DatenblockID = v_DatablockID),XMLELEMENT(Beschreibung))) into v_blockinfo from datenbloecke d where d.DatenblockID = v_DatablockID;
-- Blockinhalt selektieren
select Blockinhalt into v_blockcontent from Datenbloecke where DatenblockID = v_DatablockID;
-- überprüfe den Blockinhalt, ob der XLink Verweise auf anderen Datenblöcke hat
if (v_blockcontent.existsNode('/Blockinhalt/Link') = 1) then
-- temporäres CLOB Objekt erstellen
DBMS_LOB.CREATETEMPORARY(v_tempBlock,TRUE);
-- Datenblock über den Wert des href Attributs holen
open c_datablock;
loop
fetch c_datablock into r_datablock;
exit when c_datablock%NOTFOUND;
-- DatenblockID holen
select DatenblockID into v_id from Datenbloecke where Dateiname = r_datablock.fileName;
-- rekursiver Aufruf
v_datablockComplete := retrieveDatablock(v_id);
--v_datablockComplete := retrieveBlock(v_id);
DBMS_LOB.APPEND(v_tempBlock,v_datablockComplete);
end loop;
close c_datablock;
-- XMLType fürs Zusammenbauen erstellen, der den einzelnen Inhalt enthält
v_block := xmltype.createXML(v_tempBlock);
-- Speicher für temporäres Objekt freigeben
DBMS_LOB.FREETEMPORARY(v_tempBlock);
-- Datenblock zusammenbauen
select XMLELEMENT("Datenblock",XMLATTRIBUTES(DatenblockID as "ID"), XMLCONCAT(V_blockinfo, XMLELEMENT("Blockinhalt", v_block))) into v_datablock from datenbloecke where DatenblockID = v_DatablockID;
--return v_tempBlock;
RETURN v_datablock.getClobVal();
else
-- Datenblock zusammenbauen
select XMLELEMENT("Datenblock",XMLATTRIBUTES(DatenblockID as "ID"), XMLCONCAT(V_blockinfo, v_blockcontent)) into v_datablock from datenbloecke where DatenblockID = v_DatablockID;
RETURN v_datablock.getClobVal();
end if;
END;
Expected result would be:
<Datenblock ID="96">
<Blockinfo>
<Titel>Spezifikationsdoku Cutstar SM 72</Titel>
<Parent-ID>4</Parent-ID>
<Property Softwareversion="V41" Maschinentyp="SM 72"/>
<Property Softwareversion="V41" Maschinentyp="SM 152"/>
</Blockinfo>
<Blockinhalt>
<Datenblock ID="97">
<Blockinfo>
<Parent-ID>96</Parent-ID>
<Property Softwareversion="V42" Maschinentyp="XL"/>
<Property Softwareversion="V41" Maschinentyp="SM 172"/>
</Blockinfo>
<Blockinhalt>Ueberschrift1</Blockinhalt>
</Datenblock>
<Datenblock ID="98">
<Blockinfo>
<Parent-ID>96</Parent-ID> <Property Softwareversion="V43" Maschinentyp="TM 52"/>
<Property Softwareversion="V45" Maschinentyp="XXL 4"/>
</Blockinfo>
<Blockinhalt>
<Datenblock ID="99">
<Blockinfo> <Parent-ID>98</Parent-ID>
<Property Softwareversion="V41" Maschinentyp="SM72"/>
</Blockinfo>
<Blockinhalt>Textinhalt überarbeiten
<Aufzaehlung>hi</Aufzaehlung>
<Tabelle></Tabelle>
<Grafik Hoehe="100" Breite="40">bild1.jpg</Grafik>
<Hinweis></Hinweis>
<Datenblock ID="100">
<Blockinfo>
<Parent-ID>99</Parent-ID>
<Property Softwareversion="V45" Maschinentyp="TTL 42"/>
<Property Softwareversion="v43" Maschinentyp="XXL 4"/>
</Blockinfo>
<Blockinhalt>keine Ahnung was noch komm
<!-- other Datenblock elemens-->
</Blockinhalt>
</Datenblock>
</Blockinhalt>
</Datenblock>
</Blockinhalt>
</Datenblock>
<Datenblock ID="102">
<Blockinfo>
<Parent-ID>96</Parent-ID>
<Property Softwareversion="V41" Maschinentyp="SM 72"/>
<Property Softwareversion="V41" Maschinentyp="SM 152"/>
</Blockinfo>
<Blockinhalt>Hallo
<Datenblock ID="103">
<Blockinfo>
<Parent-ID>102</Parent-ID>
<Property Softwareversion="V41" Maschinentyp="SM 72"/>
<Property Softwareversion="V41" Maschinentyp="SM 152"/>
</Blockinfo>
<Blockinhalt>Stammtisch
</Blockinhalt>
</Datenblock>
</Blockinhalt>
</Datenblock>
<Datenblock ID="104">
<Blockinfo>
<Parent-ID>2</Parent-ID>
<Property Softwareversion="V41" Maschinentyp="SM_72"/>
</Blockinfo>
<Blockinhalt>Hallo Klaus</Blockinhalt>
</Datenblock>
</Blockinhalt>
</Datenblock>
Instead of this an exception was raised with following error message:
Fehler in (retrieveDatablock): java.sql.SQLException: ORA-31011: XML-Parsing nicht erfolgreich
ORA-19202: Fehler bei XML-Verarbeitung
LPX-00245: extra data after end of document
Error at line 2
aufgetreten
ORA-06512: in "SYS.XMLTYPE", Zeile 0
ORA-06512: in "DATECO.RETRIEVEDATABLOCK", Zeile 51
ORA-06512: in Zeile 1
What is the problem? I checked up my stored XML document, if I could find some special characters that are not allowed. But I didn't find anything. My character settings of my database are: NLS_NCHAR_CHARACTERSET = UTF8 and
NLS_CHARACTERSET = AL32UTF8I would suggest posting this in the BI Publisher forum, since it is more of a BI Publisher issue.. BI Publisher
Thank you,
Tony Miller
Webster, TX
Maybe you are looking for
-
"update rules inactive " error when importing transport request
Hi experts, I am stuck while importing transport request of update rules. I am moving transport request of update rules from 1 system to another and stuck while importing it in 2nd system. Only two update rules are stuck among all giving an error of
-
SSIS best practice on importing External text files
Hi - I am a fairly seasoned SSIS/ETL developer and I am struggling with the best architecure on how to import vendor files into a shared database. I see there being 2 methods with in importing files, and I'm really wanting input from senior level SS
-
Improve sound on saved project?
Thanks for great help from skalicki and David Harbsmeier. I saved my project before correcting the sound variation. Can this be fixed?
-
I have a series of 4 objects (object1, object2, etc) and 4 empty boxes (box1, box2, etc). What I want to happen is this: 1) Click the object and all empty boxes light up 2) Click an illuminated box and the object moves to it and it along with the no
-
Can someone assist with how to select dates for a table based on the criteria that the offset is 5 and if at that offset the number is less than 2 e.g. 20.07.1998 would be selected and 20.07.2007 will not. thanx in advance