Error using XMLType.transform() parammap argument
Hello;
I've hit a snag trying to pass top-level XSLT parameter via XMLType.transform's parammap argument.
Whenever I run the code sample at the end of this message on 9.2.0.1.0, I get the following error:
ORA-00600: internal error code, arguments: [KGHAL02], [0x0], [], [], [], [], [], []
This error does not occur if you remove the 'name=value' parammap value.
Any ideas?
Brian.
set serveroutput on
declare
stylesheet xmltype;
result xmltype;
xmldoc xmltype;
begin
stylesheet := XMLType(
'<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>
<xsl:param name="name"/>
<xsl:output
method="xml"
/>
<xsl:template match="hello" >
<xsl:value-of select="text()"/>
</xsl:template>
</xsl:stylesheet>'
xmldoc := XMLType('<hello>world </hello>');
result := xmldoc.transform(stylesheet,'name=value');
dbms_output.put_line(result.getStringVal());
end;
/
I've worked around this bug successfully by using dbms_xslprocessor package directly - but yuck. The dbms_xslprocessor and related packages is pretty messy to work with.
I also ran into problems implementing the workaround as dbms_xmldom.getDocumentElement could not find the root element on the resulting DOMDocumentFragment (converted appropriately using dbms_xmldom.makeDocument - sigh). I had to write the fragment (converted to a node first using dbms_xmldom.makeNode - heavy sigh) to a clob (dbms_xmldom.writeToClob), and then reload it using dbms_xmldom.newDOMDocument). Not to mention having to remember to freeXXX all the things I had to create.
Gross... 4 times the code with lots more opportunities for bugs & leaks.
Brian.
Similar Messages
-
ORA-03113 End-of-file error after xmltype.transform
I tried to use the xmltype.transform to transform xml data extracted from the database with a xslt contained also in the DB. If I did this with a file of 39 KB, everything works well, but when I did it with a 129 KB xslt file, I got an ora-03113 End of file error.
I suppose the error is connected to the size of the file.
Can everybody help me or suggest some ways to solve the problem?
thank you
Francesco Seriani1)Run a trace on your session.
2)Look at the server to see if an error trace file is getting generated on the database. There may be information in the error log to point toward the underlying problem. -
Error using XSLt Transformation
Hi,
I am using a servlet to get some results from the web which will be a XML file pass it to a XSLT Processor to covert it into a html doc .The code is compiling but when I run the servlet,i am getting following error.
Can anybody tell me how to solve it .its very urgent
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: Servlet execution threw an exception
root cause
java.lang.NoSuchMethodError: org.apache.xerces.framework.XMLParser.setSendCharDataAsCharArray(Z)V
org.apache.xalan.xpath.dtm.DTM.<init>(DTM.java:222)
org.apache.xalan.xpath.dtm.DTMLiaison.parse(DTMLiaison.java:197)
org.apache.xalan.xslt.XSLTEngineImpl.getSourceTreeFromInput(XSLTEngineImpl.java:838)
org.apache.xalan.xslt.XSLTEngineImpl.process(XSLTEngineImpl.java:552)
SearchServlet.doGet(SearchServlet.java:90)
javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
note The full stack trace of the root cause is available in the Apache Tomcat/5.5.7 logs.
Following is the code I am using
// importing
import java.net.*;
import java.io.*;
import java.net.URLEncoder;
import java.util.Enumeration;
import java.util.*;
import java.net.MalformedURLException;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.http.HttpServletRequest.*;
import javax.servlet.http.HttpServletResponse.*;
import java.io.OutputStream;
import org.xml.sax.InputSource;
import org.apache.xalan.xslt.XSLTProcessorFactory;
import org.apache.xalan.xslt.XSLTInputSource;
import org.apache.xalan.xslt.XSLTResultTarget;
import org.apache.xalan.xslt.XSLTProcessor;
import org.apache.xml.serialize.BaseMarkupSerializer.*;
import org.apache.xerces.xni.QName;
import org.apache.xerces.xni.XMLAttributes;
import org.apache.xerces.xni.XMLDocumentHandler;
import org.apache.xerces.xni.XMLLocator;
import org.apache.xerces.xni.XMLString;
import org.apache.xerces.xni.XNIException;
import org.apache.xerces.xni.XMLResourceIdentifier;
import org.apache.xerces.xni.Augmentations;
public class SearchServlet extends HttpServlet
//Class SearchServlet
//doGet Method
public void doGet(HttpServletRequest request,HttpServletResponse response) throws
IOException,ServletException,MalformedURLException
//try
try
String resultHere=new PageRequestor().sendGETMessageThroughSocket();
File testFile = new File("C:\\Program Files\\Apache Software Foundation\\Tomcat 5.5\\webapps\\MyApp\\WEB-INF\\classes\\hoz.xsl");
ReadMyFile obj=new ReadMyFile();
String xslResult=obj.getContents(testFile);
OutputStream outcome=response.getOutputStream();
String xmlSystemId = new File(resultHere).toURL().toExternalForm();
String xsltSystemId = new File(xslResult).toURL().toExternalForm();
XSLTProcessor processor =XSLTProcessorFactory.getProcessor();
XSLTInputSource xmlInputSource =new XSLTInputSource(xmlSystemId);
XSLTInputSource xsltInputSource =new XSLTInputSource(xsltSystemId);
XSLTResultTarget resultTree =new XSLTResultTarget(outcome);
processor.process(xmlInputSource, xsltInputSource, resultTree);
PrintWriter out=response.getWriter();
response.setContentType("text/HTML");
out.println("<html>");
out.println("<title>SearchServlet</title>");
out.println("<body>");
out.println("<p>"+resultHere+"</p>");
out.print("<p>"+"AFTER RESULT"+outcome+"</p>");
out.println("</body>");
out.flush();
//try end
catch (Exception e)
//catch
e.printStackTrace();
// catch end
//doGet Method ends
// class SearchServlet endsYou will need Xalan (from xml.apache.org) for this to work properly, and to create an instance of TransformationException and ConfigurationException:
static public void serialize(Document document, OutputStream target, boolean indent)
throws IOException, ConfigurationException, TransformationException {
try {
Transformer transformer = TransformerFactory.newInstance().newTransformer();
if (indent)
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
transformer.transform(new DOMSource(document), new StreamResult(target));
catch (TransformerConfigurationException configure) {
throw new ConfigurationException("Error instantiating XML transformer", configure);
catch (TransformerException transform) {
/** @todo Need to write a generic transformation or serialization exception */
throw new TransformationException("Error transforming XML", transform);
}- Saish -
Error using Message Transform Bean in SimplePlain2XML in file sender
Hi guys.
Im using Message Transform Bean to convert from file to xml in file sender.
My structure look like this:
ROW (1..n)
>TRANSPORTES (1)
>ENTREGAS (1..n)
And I have configured the module like this:
AF_Modules/MessageTransformBean - transform
transform - Transform.Class - com.sap.aii.messaging.adapter.Conversion
transform - xml.ENTREGAS.endSeparator - 'nl'
transform - xml.ENTREGAS.fieldFixedLengths - 1,30
transform - xml.ENTREGAS.fieldNames - TIPO,NUM_ENTREGA
transform - xml.ENTREGAS.keyFieldValue - E
transform - xml.TRANSPORTES.endSeparator - 'nl'
transform - xml.TRANSPORTES.fieldFixedLengths - 1,30
transform - xml.TRANSPORTES.fieldNames - TIPO,NUM_TRANSPORTE
transform - xml.TRANSPORTES.keyFieldValue - T
transform - xml.conversionType - SimplePlain2XML
transform - xml.documentName - MPrueba_Zip
transform - xml.documentNamespace - http:/XXXXXX.es/XXXX/sap/prueba
transform - xml.keyFieldName - TIPO
transform - xml.processFieldNames - fromConfiguration
transform - xml.recordsetName - row
transform - xml.recordsetStructure - TRANSPORTES,1,ENTREGAS,*
Im getting this error and I don´t know why:
Error: com.sap.aii.messaging.adapter.trans.TransformException: Transformer Conversion3.0.5227 Error initializing Class: java.lang.Exception: java.lang.Exception: java.lang.Exception: Error(s) in XML conversion parameters found: (4408) Parameter 'xml.fieldFixedLengths' or 'xml.fieldSeparator' is missing (4409) Parameter 'xml.fieldNames' is missing (4403) ; nested exception caused by: java.lang.Exception: java.lang.Exception: java.lang.Exception: Error(s) in XML conversion parameters found: (4408) Parameter 'xml.fieldFixedLengths' or 'xml.fieldSeparator' is missing (4409) Parameter 'xml.fieldNames' is missing (4403)
Why am i doing wrong?????
Thanks a lot!!!Hi
For Complex conversion you have to use xml.conversionType as "StructPlain2XML"
http://help.sap.com/saphelp_nw04/helpdata/en/24/4cad3baabd4737bab64d0201bc0c6c/content.htm
Regards
Ramg -
Please help me on rectifying my query. this query returns
ORA-06502: PL/SQL: numeric or value error
ORA-06512: at "SYS.XMLTYPE", line 343
ORA-06512: at line 1
SELECT xmlelement("worflowAGMT",
XMLTYPE(CURSOR (SELECT
xmlelement("AGMT",
xmlelement("auditData"),
xmlelement("AGMTID",h.AGMT_unq_id),
xmlelement("AGMTLevelValue", i.level_value),
xmlelement("AGMTSeqNbr", i.level_value),--not selected
xmlelement("nofication",
xmlelement("notificationId", i.notification_id),
xmlelement("isNotifyInitiator", j.initiator_user_flag),
xmlelement("isNotifyApprover", j.approver_user_flag),
xmlelement("isNotifyReject", j.approver_user_flag),
xmlelement("isNotifyCustomUsers", j.initiator_user_flag),
xmlelement("notifyCustomUsers",
xmlelement("auditData"),
xmlelement("notifyCustomId", k.notification_custom_id),
xmlelement("role", xmlelement("roleId",k.role_id)),
xmlelement("department", xmlelement("departmentId", k.department_id)),
xmlelement("company", xmlelement("companyId", k.company_id)),
xmlelement("division", xmlelement("divisionId", k.division_id))
FROM WORKFLOW_AGMT_TBL h,
AGMT_TBL i,
NOTIFC_TBL j,
NOTIFC_CUSTOMUSR_TBL k
WHERE h.workflow_unq_id = x.workflow_unq_id
AND h.AGMT_unq_id = i.AGMT_unq_id
AND i.notification_id = j.notification_id
AND j.notification_id = k.notification_id
)))--worflowAGMT
FROM WORKFLOW_TBL x, WF_WORKFLOW_TYPE y
WHERE y.workflow_type_id = x.workflow_type_idHi,
Most often, you get this type of error with CURSOR expression when it does not return any row, then the XMLType constructor fails.
But it's hard to say here as you don't provide sample data.
It looks like you want to aggregate rows coming from the CURSOR subquery. It's better to use XMLAgg function in this case.
Something like :
SELECT xmlelement("worflowAGMT",
( SELECT xmlagg(
xmlelement("AGMT",
... -
Xmltype.transform() with stylesheet that includes another stylesheet
I' trying to use xmltype.transform() with a stylesheet that includes/imports another stylesheet. But this results in a 'ORA-03113: End of communication channel'. Is xsl:include or xsl:import supported?
This is the first stylesheet:
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:import href="company2.xsl"/>
<xsl:template match="/">
<xsl:apply-templates select="company"/>
</xsl:template>
</xsl:stylesheet>
And this the second stylesheet:
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="company">
Company: <xsl:value-of select="."/>
</xsl:template>
</xsl:stylesheet>
Both stylesheets are stored in the Oracle XDB Repository in folder '/public/test'.
The following script results in an error:
declare
l_xsl xmltype;
l_xml xmltype;
l_xml2 xmltype;
begin
l_xsl := xdburitype('/public/test/company.xsl').getxml();
l_xml := xmltype('<company>Oracle</company>');
l_xml2 := l_xml.transform(l_xsl);
end;
I tried the following values for the href attribute of xsl:include:
company2.xsl
/public/test/company2.xsl
http://<host>:<port>/public/test/company2/xsl
I also tried to use xsl:import instead of xsl:include with the above attribute values for href. In all cases I get the ORA-03113.
Thanks for any help, hints or tips.
Erwin GroenendalDid you look in the database alert log or in the database log area to see if any trace file was generated by your error? The listener.log may have more information too.
Also, you can trace your session to see what is happening.
alter session set sql_trace = true;
run sql
alter session set sql_trace = false;
or
alter session set events '10046 trace name context forever, level 12';
or TURN on TRACING for any SESSION
execute sys.dbms_system.set_sql_trace_in_session -
(sid => &sid, serial# => &serial#, sql_trace => true);
run sql
execute sys.dbms_system.set_sql_trace_in_session -
(sid => &sid, serial# => &serial#, sql_trace => false);
HTH
M. -
XMLTYPE.transform works differently in SQL and PL/SL
Hi, when I use XMLTYPE.transform in SQL, it's working fine - try this:
SELECT XMLTYPE.createXml('<data/>').transform(XMLTYPE.createXml('<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" version="1.0" encoding="UTF-8" omit-xml-declaration="yes" indent="yes" />
<xsl:template match="/">
<HTML>
<BODY>
<TABLE>
<TR><TD><INPUT readOnly="readOnly" size="19" maxLength="30" type="text" value="test..."/></TD></TR>
</TABLE>
</BODY>
</HTML>
</xsl:template>
</xsl:stylesheet>')).getClobVal() FROM DUAL;
But when i tried to do tha same in PL/SQL, i obtain error - try this:
DECLARE
lClob CLOB;
lXsl XMLTYPE;
lXml XMLTYPE;
BEGIN
lXml := XMLTYPE.createXml('<data/>');
lXsl := XMLTYPE.createXml('<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" version="1.0" encoding="UTF-8" omit-xml-declaration="yes" indent="yes" />
<xsl:template match="/">
<HTML>
<BODY>
<TABLE>
<TR><TD><INPUT readOnly="readOnly" size="19" maxLength="30" type="text" value="test..."/></TD></TR>
</TABLE>
</BODY>
</HTML>
</xsl:template>
</xsl:stylesheet>');
lClob := lXml.transform(lXsl).getClobVal();
END;
Error is:
ORA-31011: XML parsing failed
ORA-19202: Error occurred in XML processing
LPX-00210: expected '=' instead of '>'
Error at line 7
ORA-06512: at "SYS.XMLTYPE", line 138
ORA-06512: at line 20
Oracle version is 11.2.0.2.0.
Knows anybody where is the problem?
Thanks, R. KazimirHi,
Actually it does not work for both.
Remove .getClobVal() method and see what happens :
SQL> SELECT XMLTYPE.createXml('<data/>')
2 .transform(XMLTYPE.createXml('<?xml version="1.0" encoding="UTF-8"?>
3 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
4 <xsl:output method="html" />
5 <xsl:template match="/">
6 <HTML>
7 <BODY>
8 <TABLE>
9 <TR><TD><INPUT readOnly="readOnly" size="19" maxLength="30" type="text" value="test..."/></TD><
/TR>
10 </TABLE>
11 </BODY>
12 </HTML>
13 </xsl:template>
14 </xsl:stylesheet>'))
15 FROM dual;
ERROR:
ORA-31011: Echec d'analyse XML
ORA-19202: Une erreur s'est produite lors du traitement la fonction XML (
LPX-00210: '=' attendu plutôt que '>'
Error at line 1
)Besides, using getClobVal() in the SQL version produces an invalid output :
<HTML>
<BODY>
<TABLE>
<TR>
<TD>
<INPUT readOnly>
</INPUT>
</TD>
</TR>
</TABLE>
</BODY>
</HTML>The readOnly attribute is not well-formed.
Even stranger : change the just the case of the attribute value, e.g. "readOnly" to "readonly", and it works!
I'm not sure what's happening here. Most likely a combination of bugs regarding html output method.
As a workaround, you can use output method "xml" instead. Works in any cases.
On a side note, in your version, getter methods like getClobVal() are deprecated. Oracle now recommends using XMLSerialize function.
The same goes with XSL transformation, where one should use XMLTransform instead of transform() method. -
Error occured while transforming payload using XSL
Hi,
When i deployed the SOAOrderBooking BPEL process, an instance created successfully in BPEL console (after submitting orders successfully), but when i clicked the instance window in ESB control to confirm that the service instance successfully received the order and initiated the SOAOrderBooking BPEL process, i can see 2 instances there OrderBookingESB and FulfillmentESB, so now the issue is the FulfillmentESB instance created with some error which is given below:
Error Message
Error occured while transforming payload using XSL "esb:///ESB_Projects/SOAEssentials_FulfillmentESB/PurchaseOrder_To_FedexshipmentCollection.xsl". Reason : Could not load XSL transform into the cache for XSL/XSLT "esb:///ESB_Projects/SOAEssentials_FulfillmentESB/PurchaseOrder_To_FedexshipmentCollection.xsl"! Reason : org.apache.slide.structure.ObjectNotFoundException: No object found at /files/ESB_Projects/SOAEssentials_FulfillmentESB!
at oracle.tip.esb.server.service.EsbRouterSubscription.transform(Unknown Source)
at oracle.tip.esb.server.service.EsbRouterSubscription.onBusinessEvent(Unknown Source)
at oracle.tip.esb.server.dispatch.EventDispatcher.executeSubscription(Unknown Source)
at oracle.tip.esb.server.dispatch.InitialEventDispatcher.processSubscription(Unknown Source)
at oracle.tip.esb.server.dispatch.InitialEventDispatcher.processSubscriptions(Unknown Source)
at oracle.tip.esb.server.dispatch.EventDispatcher.dispatchRoutingService(Unknown Source)
at oracle.tip.esb.server.dispatch.InitialEventDispatcher.dispatch(Unknown Source)
at oracle.tip.esb.server.dispatch.BusinessEvent.raise(Unknown Source)
at oracle.tip.esb.utils.EventUtils.raiseBusinessEvent(Unknown Source)
at oracle.tip.esb.server.service.EsbRouterSubscription.onBusinessEvent(Unknown Source)
at oracle.tip.esb.server.dispatch.EventDispatcher.executeSubscription(Unknown Source)
at oracle.tip.esb.server.dispatch.InitialEventDispatcher.processSubscription(Unknown Source)
at oracle.tip.esb.server.dispatch.InitialEventDispatcher.processSubscriptions(Unknown Source)
at oracle.tip.esb.server.dispatch.EventDispatcher.dispatchRoutingService(Unknown Source)
at oracle.tip.esb.server.dispatch.InitialEventDispatcher.dispatch(Unknown Source)
at oracle.tip.esb.server.dispatch.BusinessEvent.raise(Unknown Source)
at oracle.tip.esb.server.service.impl.soap.EventOracleSoapProvider.raiseEvent(Unknown Source)
at oracle.tip.esb.server.service.impl.soap.EventOracleSoapProvider.........
Besides after submitting orders, when i clicked "View Current Orders", iam getting 500 internal server error: Servlet error: An exception occurred. The current application deployment descriptors do not allow for including it in this response. Please consult the application log for details.
If anyone know how to solve this issue plz let me know...
Thanks in advance....
- Indhu
Message was edited by:
IndhuLooks like you might not have imported the xsl within the project. When you import the files from outside your project you have to have "Add to project" checked.
Check if you see the xsl file within the project folder.
DP -
Hi,
I am getting the below error for JXDM when using. It was mentioned in http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6302524 that it is fixed. Still getting this error.
a) Appreciate if anyone can tell how to use the bug fix b20 that is mentioned in the above? I downloaded the latest jaxb 2.0 from this site and also from the jaxb RI(Reference Implementation and tried both).
b) Is there any workaround to get through this?
Will appreciate if any one can give advise on this.
************** Here is the error message ******************
There was this problem creating a context com.sun.xml.bind.v2.runtime.IllegalAnn
otationsException: 1 counts of IllegalAnnotationExceptions
Two classes have the same XML type name "usStateCodeType". Use @XmlType.name and
@XmlType.namespace to assign different names to them.
this problem is related to the following location:
at gov.ojp.it.jxdm.usps_states._1.USStateCodeType
at protected gov.ojp.it.jxdm.usps_states._1.USStateCodeType gov.
ojp.it.jxdm._3_0_2.proxy.usps_states._1.USStateCodeType.value
at gov.ojp.it.jxdm._3_0_2.proxy.usps_states._1.USStateCodeType
at protected gov.ojp.it.jxdm._3_0_2.proxy.usps_states._1.USState
CodeType generated.CjsAddressType.locationStateCodeUSPostalService
at generated.CjsAddressType
at protected java.util.List generated.CjsPersonType.personAddres
s
at generated.CjsPersonType
at protected generated.CjsPersonType generated.CjsSuspectType.su
spectPerson
at generated.CjsSuspectType
at protected generated.CjsSuspectType generated.CjsReportType.su
spect
at generated.CjsReportType
at public generated.CjsReportType generated.ObjectFactory.create
CjsReportType()
at generated.ObjectFactory
this problem is related to the following location:
at gov.ojp.it.jxdm.fips_5_2._1.USStateCodeType
at protected gov.ojp.it.jxdm.fips_5_2._1.USStateCodeType gov.ojp
.it.jxdm._3_0_2.proxy.fips_5_2._1.USStateCodeType.value
at gov.ojp.it.jxdm._3_0_2.proxy.fips_5_2._1.USStateCodeType
at protected java.util.List gov.ojp.it.jxdm._3_0.AddressType.loc
ationStateCodeFips52Alpha
at gov.ojp.it.jxdm._3_0.AddressType
at protected java.util.List gov.ojp.it.jxdm._3_0.LocationType.lo
cationAddress
at gov.ojp.it.jxdm._3_0.LocationType
at protected java.util.List gov.ojp.it.jxdm._3_0.OrganizationTyp
e.organizationLocation
at gov.ojp.it.jxdm._3_0.OrganizationType
at protected java.util.List gov.ojp.it.jxdm._3_0.BookingType.boo
kingAgency
at gov.ojp.it.jxdm._3_0.BookingType
at generated.CjsBookingType
at public generated.CjsBookingType generated.ObjectFactory.creat
eCjsBookingType()
at generated.ObjectFactory
Check this out
Exception in thread "main" java.lang.NullPointerException
at bpd.MakeNewItem.marshallItem(MakeNewItem.java:119)
at bpd.MakeNewItem.persistItem(MakeNewItem.java:112)
at bpd.MakeNewItem.<init>(MakeNewItem.java:31)
at bpd.MakeNewItem.main(MakeNewItem.java:137)
********************End of error message ******************
Thanks
Sat
Message was edited by:
sat_pIn Help > About > Properties:
sqldeveloper.oci.available = true -
Error while using Message transform Bean
Hi All,
I am using message transform bean in the receiver channel. The structure I have used is as follows.
Transform.Class com.sap.aii.messaging.adapter.Conversion
Transform.ContentType text/xml;charset=utf-8
xml.conversionType SimplePlain2XML
xml.documentName MT_DataExtract
xml.documentNamespace http://ce.corp.com/xi/ACA/HR_INT_XXX/EmployerReporting
xml.endSeperator 'nl'
xml.fieldNames pernr,l_name,f_name,m_name,perid,p_subarea,e_group,e_subgroup,status,c_code,pa_text,str_add,h_city,h_state,h_zcode,z1_org,z2_org,rep_hours
xml.fieldSeperator ,
xml.singleRecordType Employee_Details
XML structure would be as
<Employee_Details>
<pernr></pernr>
- <l_name></l_name> <f_name></f_name>
<m_name />
<perid></perid>
<p_subarea></p_subarea>
<e_group></e_group>
<e_subgrp></e_subgrp>
<status></status>
<c_code></c_code>
<pa_text></pa_text>
<str_add></str_add>
<h_city></h_city>
<h_state></h_state>
<h_zcode></h_zcode>
<z1_org></z1_org>
<z2_org></z2_org>
<rep_hours></rep_hours>
</Employee_Details>
I am getting error as Delivering the message to the application using connection File_http://sap.com/xi/XI/System failed, due to: com.sap.engine.interfaces.messaging.api.exception.MessagingException: com.sap.aii.af.lib.util.configuration.ConfigurationExceptionSet: The following configuration errors were detected: - Either recordTypes or singleRecordType needs to be set .
Please help me to resolve this error.
Thanks,
ShankulIt's not just that parameter, Please change your configuration as explained in the blog i shared.
There is a example which has expected structure and the conversion parameters.
Your target xml should be like below.
The XML structure of the source file should follow the same structure as the result of the SimplePlain2XML conversion.
<resultset>
<row>
<column-name1>ABC</column-name1>
<column-name2>12345</column-name2>
<column-name3>Text1</column-name3>
</row>
<row>
<column-name1>XYZ</column-name1>
<column-name2>67890</column-name2>
<column-name3>Text2 Text3</column-name3>
</row>
</resultset>
Examples of Content Conversion Using MessageTransformBean (SAP Library - SAP Exchange Infrastructure) -
[9i] poor performance with XMLType.transform
Hello,
I've got a problem with the Oracle function XMLType.transform.
When I try to apply a XSL to a big XML, it is very very slow, and it evens consumes all the CPU, and other users are not able to work until the processing is complete...
So I was wondering if my XSL was corrupted, but it does not seem so, because when i apply it with Internet Explorer (by just double-clicking on the .xml), it is immediately applied. I've also even tried with oraxsl, and the processing is quick and good.
So, i tried to use XDB, but it does not work, maybe I should upgrade to a newer version of XDB?
Please find the ZIP file here :
http://perso.modulonet.fr/~tleoutre/Oracle/samples.zip
Please find in this file :
1) The XSL file k_xsl.xsl
2) The "big" XML file big_xml.xml
Here you can try to apply the XSL on the XML with Internet Explorer : processing is very quick...
3) The batch file transform.bat
Here you can launch it, it calls oraxsl, and produces a result very quickly...
4) The SQL file test_xsl_with_xmltype_transform.sql.
You can try to launch it... First, it applies the same XSL with a little XML, and it's OK... And then, it applies the XSL to the same big XML as in point 1), and then, it takes a lot of time and CPU...
5) The SQL file test_xsl_with_xdb_1.sql ...
On my server, it fails... So I tried to change the XSL in the next point :
6) The SQL file test_xsl_with_xdb_2.sql with a "cleaned" XSL...
And then, it fails with exactly the same problem as in :
TransformerConfigurationException (Unknown expression at EOF: *|/.)
Any help would be greatly appreciated!
Thank you!
P.S. : Sorry for my bad english, I'm a French man :-)This is what I see...
Your tests are measuring the wrong thing. You are measuring the time to create the sample documents, which is being done very innefficiently, as well
as the time take to do the transform.
Below is the correct way to get mesasurements for each task..
Here's what I see on a PIV 2.4Ghz with 10.2.0.2.0 and 2GB of RAM
Fragments SourceSize TargetSize createSource Parse Transform
50 28014 104550 00:00:00.04 00:00:00.04 00:00:00.12
100 55964 209100 00:00:00.03 00:00:00.05 00:00:00.23
500 279564 1045500 00:00:00.16 00:00:00.23 00:00:01.76
1000 559064 2091000 00:00:00.28 00:00:00.28 00:00:06.04
2000 1118064 4182000 00:00:00.34 00:00:00.42 00:00:24.43
5000 2795064 10455000 00:00:00.87 00:00:02.02 00:03:19.02I think this clearly shows the pattern.
Of course what this testing really shows is that you've clearly missed the point of performing XSLT transformation inside the database.
The idea behind database based transformation is to optimize XSLT processing by
(1), not having to parse the XML and build a DOM tree before commencing the XSLT processing. In this example this is not possible since the
XML is being created from a CLOB based XMLType, not a schema based XMLType.
(2) Leveraging the Lazily Loaded Virtual DOM when doing sparse transformation ( A Sparse transformation is one where there are large parts of the
source document that are not required to create the target document. Again in this case the XSL requires you to walk all the nodes to generate the
required output.
If is necessary to process all of the nodes in the source document to generate the entire output it probably makes more sense to use a midtier XSL engine.
Here's the code I used to generate the numbers in the above example
BTW in terms of BIG XML we've successully processed 12G documents with Schema Based Storage...So nothing you have hear comes any where our defintion of big.- 1 with Oracle 10g Express on Linux
Also, please remember that 9.2.0.1.0 is not a supported release for any XML DB related features.
SQL*Plus: Release 10.2.0.2.0 - Production on Fri Feb 10 07:44:59 2006
Copyright (c) 1982, 2005, Oracle. All Rights Reserved.
SQL> spool createDocument.log
SQL> --
SQL> connect &1/&2
Connected.
SQL> --
SQL> create or replace directory &1 as '&3'
2 /
old 1: create or replace directory &1 as '&3'
new 1: create or replace directory SCOTT as '/home/mdrake/bugs/xslTest'
Directory created.
SQL> drop table source_data_table
2 /
Table dropped.
SQL> create table source_data_table
2 (
3 fragCount number,
4 xml_text clob,
5 xml xmlType,
6 result clob
7 )
8 /
Table created.
SQL> create or replace procedure createDocument(fragmentCount number)
2 as
3 fragmentText clob :=
4 '<AFL LIGNUM="1999">
5 <mat>20000001683</mat>
6 <name>DOE</name>
7 <firstname>JOHN</firstname>
8 <name2>JACK</name2>
9 <SEX>MALE</SEX>
10 <birthday>1970-05-06</birthday>
11 <salary>5236</salary>
12 <code1>5</code1>
13 <code2>6</code2>
14 <code3>7</code3>
15 <date>2006-05-06</date>
16 <dsp>8.665</dsp>
17 <dsp_2000>455.45</dsp_2000>
18 <darr04>5.3</darr04>
19 <darvap04>6</darvap04>
20 <rcrr>8</rcrr>
21 <rcrvap>9</rcrvap>
22 <rcrvav>10</rcrvav>
23 <rinet>11.231</rinet>
24 <rmrr>12</rmrr>
25 <rmrvap>14</rmrvap>
26 <ro>15</ro>
27 <rr>189</rr>
28 <date2>2004-05-09</date2>
29 </AFL>';
30
31 xmlText CLOB;
32
33 begin
34 dbms_lob.createTemporary(xmlText,true,DBMS_LOB.CALL);
35 dbms_lob.write(xmlText,5,1,'<PRE>');
36 for i in 1..fragmentCount loop
37 dbms_lob.append(xmlText,fragmentText);
38 end loop;
39 dbms_lob.append(xmlText,xmlType('<STA><COD>TER</COD><MSG>Op?ation R?ssie</MSG></STA>').getClobVal());
40 dbms_lob.append(xmlText,'</PRE>');
41 insert into source_data_table (fragCount,xml_text) values (fragmentCount, xmlText);
42 commit;
43 dbms_lob.freeTemporary(xmlText);
44 end;
45 /
Procedure created.
SQL> show errors
No errors.
SQL> --
SQL> set timing on
SQL> --
SQL> call createDocument(50)
2 /
Call completed.
Elapsed: 00:00:00.04
SQL> call createDocument(100)
2 /
Call completed.
Elapsed: 00:00:00.03
SQL> call createDocument(500)
2 /
Call completed.
Elapsed: 00:00:00.16
SQL> call createDocument(1000)
2 /
Call completed.
Elapsed: 00:00:00.28
SQL> call createDocument(2000)
2 /
Call completed.
Elapsed: 00:00:00.34
SQL> call createDocument(5000)
2 /
Call completed.
Elapsed: 00:00:00.87
SQL> select fragCount dbms_lob.getLength(xmlText)
2 from sample_data_table
3 /
select fragCount dbms_lob.getLength(xmlText)
ERROR at line 1:
ORA-00923: FROM keyword not found where expected
Elapsed: 00:00:00.00
SQL> quit
Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.2.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL*Plus: Release 10.2.0.2.0 - Production on Fri Feb 10 07:45:01 2006
Copyright (c) 1982, 2005, Oracle. All Rights Reserved.
SQL> spool testcase_&3..log
SQL> --
SQL> connect &1/&2
Connected.
SQL> --
SQL> set timing on
SQL> --
SQL> update source_data_table
2 set xml = xmltype(xml_text)
3 where fragCount = &3
4 /
old 3: where fragCount = &3
new 3: where fragCount = 50
1 row updated.
Elapsed: 00:00:00.04
SQL> commit
2 /
Commit complete.
Elapsed: 00:00:00.01
SQL> update source_data_table
2 set result = xmltransform(xml,xmltype(bfilename(USER,'&4'),nls_charset_id('WE8ISO8859P1'))).getClobVal()
3 where fragCount = &3
4 /
old 2: set result = xmltransform(xml,xmltype(bfilename(USER,'&4'),nls_charset_id('WE8ISO8859P1'))).getClobVal()
new 2: set result = xmltransform(xml,xmltype(bfilename(USER,'k_xsl.xsl'),nls_charset_id('WE8ISO8859P1'))).getClobVal()
old 3: where fragCount = &3
new 3: where fragCount = 50
1 row updated.
Elapsed: 00:00:00.12
SQL> commit
2 /
Commit complete.
Elapsed: 00:00:00.01
SQL> select fragCount, dbms_lob.getLength(xml_text),dbms_lob.getLength(result)
2 from source_data_table
3 /
FRAGCOUNT DBMS_LOB.GETLENGTH(XML_TEXT) DBMS_LOB.GETLENGTH(RESULT)
50 28014 104550
100 55964
500 279564
1000 559064
2000 1118064
5000 2795064
6 rows selected.
Elapsed: 00:00:00.01
SQL> quit
Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.2.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL*Plus: Release 10.2.0.2.0 - Production on Fri Feb 10 07:45:02 2006
Copyright (c) 1982, 2005, Oracle. All Rights Reserved.
SQL> spool testcase_&3..log
SQL> --
SQL> connect &1/&2
Connected.
SQL> --
SQL> set timing on
SQL> --
SQL> update source_data_table
2 set xml = xmltype(xml_text)
3 where fragCount = &3
4 /
old 3: where fragCount = &3
new 3: where fragCount = 100
1 row updated.
Elapsed: 00:00:00.05
SQL> commit
2 /
Commit complete.
Elapsed: 00:00:00.01
SQL> update source_data_table
2 set result = xmltransform(xml,xmltype(bfilename(USER,'&4'),nls_charset_id('WE8ISO8859P1'))).getClobVal()
3 where fragCount = &3
4 /
old 2: set result = xmltransform(xml,xmltype(bfilename(USER,'&4'),nls_charset_id('WE8ISO8859P1'))).getClobVal()
new 2: set result = xmltransform(xml,xmltype(bfilename(USER,'k_xsl.xsl'),nls_charset_id('WE8ISO8859P1'))).getClobVal()
old 3: where fragCount = &3
new 3: where fragCount = 100
1 row updated.
Elapsed: 00:00:00.23
SQL> commit
2 /
Commit complete.
Elapsed: 00:00:00.03
SQL> select fragCount, dbms_lob.getLength(xml_text),dbms_lob.getLength(result)
2 from source_data_table
3 /
FRAGCOUNT DBMS_LOB.GETLENGTH(XML_TEXT) DBMS_LOB.GETLENGTH(RESULT)
50 28014 104550
100 55964 209100
500 279564
1000 559064
2000 1118064
5000 2795064
6 rows selected.
Elapsed: 00:00:00.01
SQL> quit
Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.2.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL*Plus: Release 10.2.0.2.0 - Production on Fri Feb 10 07:45:02 2006
Copyright (c) 1982, 2005, Oracle. All Rights Reserved.
SQL> spool testcase_&3..log
SQL> --
SQL> connect &1/&2
Connected.
SQL> --
SQL> set timing on
SQL> --
SQL> update source_data_table
2 set xml = xmltype(xml_text)
3 where fragCount = &3
4 /
old 3: where fragCount = &3
new 3: where fragCount = 500
1 row updated.
Elapsed: 00:00:00.12
SQL> commit
2 /
Commit complete.
Elapsed: 00:00:00.03
SQL> update source_data_table
2 set result = xmltransform(xml,xmltype(bfilename(USER,'&4'),nls_charset_id('WE8ISO8859P1'))).getClobVal()
3 where fragCount = &3
4 /
old 2: set result = xmltransform(xml,xmltype(bfilename(USER,'&4'),nls_charset_id('WE8ISO8859P1'))).getClobVal()
new 2: set result = xmltransform(xml,xmltype(bfilename(USER,'k_xsl.xsl'),nls_charset_id('WE8ISO8859P1'))).getClobVal()
old 3: where fragCount = &3
new 3: where fragCount = 500
1 row updated.
Elapsed: 00:00:01.76
SQL> commit
2 /
Commit complete.
Elapsed: 00:00:00.00
SQL> select fragCount, dbms_lob.getLength(xml_text),dbms_lob.getLength(result)
2 from source_data_table
3 /
FRAGCOUNT DBMS_LOB.GETLENGTH(XML_TEXT) DBMS_LOB.GETLENGTH(RESULT)
50 28014 104550
100 55964 209100
500 279564 1045500
1000 559064
2000 1118064
5000 2795064
6 rows selected.
Elapsed: 00:00:00.00
SQL> quit
Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.2.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL*Plus: Release 10.2.0.2.0 - Production on Fri Feb 10 07:45:04 2006
Copyright (c) 1982, 2005, Oracle. All Rights Reserved.
SQL> spool testcase_&3..log
SQL> --
SQL> connect &1/&2
Connected.
SQL> --
SQL> set timing on
SQL> --
SQL> update source_data_table
2 set xml = xmltype(xml_text)
3 where fragCount = &3
4 /
old 3: where fragCount = &3
new 3: where fragCount = 1000
1 row updated.
Elapsed: 00:00:00.28
SQL> commit
2 /
Commit complete.
Elapsed: 00:00:00.01
SQL> update source_data_table
2 set result = xmltransform(xml,xmltype(bfilename(USER,'&4'),nls_charset_id('WE8ISO8859P1'))).getClobVal()
3 where fragCount = &3
4 /
old 2: set result = xmltransform(xml,xmltype(bfilename(USER,'&4'),nls_charset_id('WE8ISO8859P1'))).getClobVal()
new 2: set result = xmltransform(xml,xmltype(bfilename(USER,'k_xsl.xsl'),nls_charset_id('WE8ISO8859P1'))).getClobVal()
old 3: where fragCount = &3
new 3: where fragCount = 1000
1 row updated.
Elapsed: 00:00:06.04
SQL> commit
2 /
Commit complete.
Elapsed: 00:00:00.00
SQL> select fragCount, dbms_lob.getLength(xml_text),dbms_lob.getLength(result)
2 from source_data_table
3 /
FRAGCOUNT DBMS_LOB.GETLENGTH(XML_TEXT) DBMS_LOB.GETLENGTH(RESULT)
50 28014 104550
100 55964 209100
500 279564 1045500
1000 559064 2091000
2000 1118064
5000 2795064
6 rows selected.
Elapsed: 00:00:00.00
SQL> quit
Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.2.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL*Plus: Release 10.2.0.2.0 - Production on Fri Feb 10 07:45:11 2006
Copyright (c) 1982, 2005, Oracle. All Rights Reserved.
SQL> spool testcase_&3..log
SQL> --
SQL> connect &1/&2
Connected.
SQL> --
SQL> set timing on
SQL> --
SQL> update source_data_table
2 set xml = xmltype(xml_text)
3 where fragCount = &3
4 /
old 3: where fragCount = &3
new 3: where fragCount = 2000
1 row updated.
Elapsed: 00:00:00.42
SQL> commit
2 /
Commit complete.
Elapsed: 00:00:00.02
SQL> update source_data_table
2 set result = xmltransform(xml,xmltype(bfilename(USER,'&4'),nls_charset_id('WE8ISO8859P1'))).getClobVal()
3 where fragCount = &3
4 /
old 2: set result = xmltransform(xml,xmltype(bfilename(USER,'&4'),nls_charset_id('WE8ISO8859P1'))).getClobVal()
new 2: set result = xmltransform(xml,xmltype(bfilename(USER,'k_xsl.xsl'),nls_charset_id('WE8ISO8859P1'))).getClobVal()
old 3: where fragCount = &3
new 3: where fragCount = 2000
1 row updated.
Elapsed: 00:00:24.43
SQL> commit
2 /
Commit complete.
Elapsed: 00:00:00.03
SQL> select fragCount, dbms_lob.getLength(xml_text),dbms_lob.getLength(result)
2 from source_data_table
3 /
FRAGCOUNT DBMS_LOB.GETLENGTH(XML_TEXT) DBMS_LOB.GETLENGTH(RESULT)
50 28014 104550
100 55964 209100
500 279564 1045500
1000 559064 2091000
2000 1118064 4182000
5000 2795064
6 rows selected.
Elapsed: 00:00:00.00
SQL> quit
Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.2.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL*Plus: Release 10.2.0.2.0 - Production on Fri Feb 10 07:45:36 2006
Copyright (c) 1982, 2005, Oracle. All Rights Reserved.
SQL> spool testcase_&3..log
SQL> --
SQL> connect &1/&2
Connected.
SQL> --
SQL> set timing on
SQL> --
SQL> update source_data_table
2 set xml = xmltype(xml_text)
3 where fragCount = &3
4 /
old 3: where fragCount = &3
new 3: where fragCount = 5000
1 row updated.
Elapsed: 00:00:02.02
SQL> commit
2 /
Commit complete.
Elapsed: 00:00:00.05
SQL> update source_data_table
2 set result = xmltransform(xml,xmltype(bfilename(USER,'&4'),nls_charset_id('WE8ISO8859P1'))).getClobVal()
3 where fragCount = &3
4 /
old 2: set result = xmltransform(xml,xmltype(bfilename(USER,'&4'),nls_charset_id('WE8ISO8859P1'))).getClobVal()
new 2: set result = xmltransform(xml,xmltype(bfilename(USER,'k_xsl.xsl'),nls_charset_id('WE8ISO8859P1'))).getClobVal()
old 3: where fragCount = &3
new 3: where fragCount = 5000
1 row updated.
Elapsed: 00:03:19.02
SQL> commit
2 /
Commit complete.
Elapsed: 00:00:00.01
SQL> select fragCount, dbms_lob.getLength(xml_text),dbms_lob.getLength(result)
2 from source_data_table
3 /
FRAGCOUNT DBMS_LOB.GETLENGTH(XML_TEXT) DBMS_LOB.GETLENGTH(RESULT)
50 28014 104550
100 55964 209100
500 279564 1045500
1000 559064 2091000
2000 1118064 4182000
5000 2795064 10455000
6 rows selected.
Elapsed: 00:00:00.04
SQL> quit
Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.2.0 - Production
With the Partitioning, OLAP and Data Mining options
bash-2.05b$ -
Escaped ampersand still causes LPX-00242 in xmltype.transform
Running Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit Production
Collecting input from web form, and fetching via SQLX functions to then transform into html and plain text documents. If the "&" is inputted... the SQLX functions does escape it to "&"... but the LPX-00242 error is still raised when sending to xmltype.transform.
A simple test case:
set define off;
declare
l_xsl xmltype;
l_xml xmltype;
begin
l_xsl := xmltype('<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>
<xsl:template match="/">
Hello <xsl:value-of select="//name"/>
</xsl:template>
</xsl:stylesheet>');
l_xml := xmltype('<test><name>Jane&John Doe</name></test>');
dbms_output.put_line(l_xml.transform
(l_xsl
).getclobval ());
end;the above code raises this exception:
ORA-31011: XML parsing failed
ORA-19202: Error occurred in XML processing
LPX-00241: entity reference is not well formed
Error at line 3
ORA-06512: at "SYS.XMLTYPE", line 138
ORA-06512: at line 20If I rerun the above block... but change the xml string to <test><name>Jane &amp; John Doe</name></test>
I now get the following exception:
Error at line 2
ORA-31011: XML parsing failed
ORA-19202: Error occurred in XML processing
LPX-00242: invalid use of ampersand ('&') character (use &)
Error at line 3
ORA-06512: at "SYS.XMLTYPE", line 138
ORA-06512: at line 20If I change the xml string to <test><name>Jane &amp;amp; John Doe</name></test>.. no exceptions and displays the following:
Hello Jane &amp; John Doe
any reason why the SQLX function escaping is not sufficient and I need to double-escape it? The working version is not ideal, since I now have to decode the entity reference back to it's character, otherwise the entity reference code is displayed in the content.
Edited by: pl_sequel on Sep 7, 2011 2:12 PMHi tsuji,
Interesting discussion, really, but I fail to see how the way we're generating the XMLType instance in the first place is important for any subsequent transformation.
You said :
That part is well noticed. And that precisely poses problem.and,
[6.2] But the working (at least for this sample) of the latter but not the former using xmltype() precisely pose the problem of either xmltype().transform() implementation contains bug [...]Could you explain again what you think works and what doesn't?
I may be missing something but all these appear to work correctly :
SQL> var xsldoc varchar2(4000)
SQL> begin
2 :xsldoc := '<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
3 <xsl:output method="text"/>
4 <xsl:template match="/">Hello <xsl:value-of select="//name"/>
5 </xsl:template>
6 </xsl:stylesheet>';
7 end;
8 /
PL/SQL procedure successfully completed
SQL> set define off
SQL> select xmltransform(
2 xmlelement("test", xmlelement("name", 'Jane&John Doe'))
3 , :xsldoc
4 ).getclobval() as result
5 from dual
6 ;
RESULT
Hello Jane&John Doe
SQL> select xmltransform(
2 xmltype('<test><name>Jane&John Doe</name></test>')
3 , :xsldoc
4 ).getclobval() as result
5 from dual
6 ;
RESULT
Hello Jane&John Doe
SQL> select xmltype(
2 '<test><name>Jane&John Doe</name></test>'
3 ).transform(xmltype(:xsldoc)).getclobval() as result
4 from dual
5 ;
RESULT
Hello Jane&John Doe
SQL> select xmlelement("test",
2 xmlelement("name", 'Jane&John Doe')
3 ).transform(xmltype(:xsldoc)).getclobval() as result
4 from dual
5 ;
RESULT
Hello Jane&John Doe
In any case, you know well there is a something fishy going on, one way of looking at it or another.Yes, I agree. For sure, Oracle XSLT processors are not bug-free.
For the case we're looking at now, the essence of the XMLType datatype is probably more to blame than the XSLT processor though.
A little off-topic addendum about the method="html" output :
SQL> select xmltransform(xmlelement("test",
2 xmlelement("name", 'Jane&John Doe')
3 ),'<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
4 <xsl:output method="html" encoding="iso-8859-15" indent="yes"/>
5 <xsl:template match="/"><html><head/><body><p><xsl:value-of select="//name"/></p></body></html>
6 </xsl:template>
7 </xsl:stylesheet>').getclobval()
8 as result
9 from dual;
RESULT
<html>
<head>
<meta http-equiv="Content-Type" content="text/html" charset="iso-8859-15">
</meta>
</head>
<body>
<p>Jane&John Doe</p>
</body>
</html>
Not perfect but the method seems supported too.
Edited by: odie_63 on 11 sept. 2011 20:43 -
Error While Transporting Transformation
Hi Gurus, I have this issue that I am getting an error while transporting Transformation. I made sure that that only transformation is sected and nothing else. I am getting this error message while importing it in BWQ environment "Formula 4AY060939P5D2NKRXKMJFECLS is already locked in the requests of other users or the system is set so that formula 4AY060939P5D2NKRXKMJFECLS can no longer be changed."
I was wondering, if this is locked by some other object or transport request, how can I find that out? Thanks in advance for all the help.Hi,
You can check if the request is locked by another transport in BWQ by using the transaction SE03.
First find the object directory entry for your object(you can take this from your transport. Go to SE03 --> 'Search for Objects in Requests/Tasks '. Under object selection enter the details as in your transport and select the check box against your new entry. Under Request/Task selection, select 'Modified' and 'Released'. Execute. You will now see a list of transport requests that contain your transformation. Check these & either release them or delete your object from the modifable transports. Re import your transport.
You can check if this object was locked by a person using the transaction SM12.
Regards,
Shilpa -
Unable to convert BLOB to XML using XMLTYPE
Hello (XML) Experts
I need your help with manipulating a BLOB column containing XML data - I am encountering the following error:
ORA-31011: XML parsing failed
ORA-19202: Error occurred in XML processing
LPX-00200: could not convert from encoding UTF-8 to WINDOWS-1252
Error at line 1
ORA-06512: at "SYS.XMLTYPE", line 283
I am on Windows 7 64 bit, Oracle 11.2.0.3 64 bit and database character set is WE8MSWIN1252, NLS_LANG is set to AMERICAN_AMERICA.AL32UTF8. The BLOB column contains the following XML data:
<?xml version="1.0" encoding="utf-8"?>
<Root CRC="-4065505">
<Header Converted="0">
<Version Type="String" Value="512" />
<Revision Type="String" Value="29" />
<SunSystemsVersion Type="String" Value="" />
<Date Type="String" Value="20080724" />
<Time Type="String" Value="165953" />
<DAG Type="String" Value="" />
<ChkID Type="String" Value="" />
<FormType Type="String" Value="1" />
<DB Type="String" Value="AllBusinessUnits" />
<FuncID Type="String" Value="SOE" />
<Status Type="String" Value="" />
<FileType Type="String" Value="SFL" />
<Descriptions>
<Default Type="String" Value="Sales Order Entry" />
<L01 Type="String" Value="Sales Order Entry" />
<L33 Type="String" Value="Saisie commande client" />
<L34 Type="String" Value="Entrada de órdenes de venta" />
<L39 Type="String" Value="Inserimento ordine di vendita" />
<L49 Type="String" Value="Aufträge erfassen" />
<L55 Type="String" Value="Entrada de pedido de venda" />
<L81 Type="String" Value="�注オーダー入力" />
<L86 Type="String" Value="销售订�录入" />
<L87 Type="String" Value="銷售訂單錄入" />
</Descriptions>
</Header>
<FormDesignerAppVer Type="String" Value="5.1" SFLOnly="1" />
</Root>I am using the XMLTYPE constructor and passing in the BLOB column and the character set id of the XML data stored in the BLOB column in order to extract and update a node in the XML as follows:
select xmltype(srce_form_detail,873) from SRCE_FORM where 873 above corresponds to the utf-8 encoding of the XML data in the BLOB column i.e. AL32UTF8, but this results in the above error.
I have also tried converting the BLOB to a CLOB first as below where BLOB2CLOB is a function that converts the BLOB to a CLOB:
select xmltype(BLOB2CLOB(srce_form_detail)).EXTRACT('/Root/Header/DB').getStringVal() XMLSrc from SRCE_FORM;This results in the following error:
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.XMLTYPE", line 272
ORA-06512: at line 1
Looking at the XML in the BLOB I noticed that it contains a BOM(byte order mark) and this is causing the XML parsing to fail and I don't know how to deal with it and I don't want to simply SUBSTR it out.
What I am trying to achieve is to extract the contents of the DB node in the XML and depending on its value I need to update the 'Value' part of that node. I am stuck at the point of extracting the contents of the DB node.
I hope I have provided enough information and I would appreciate any suggestions on how best to resolve this - my XML knowledge is very limited so I would appreciate any help.
Regards,
MohinderHi Marc
Thanks for your response.
You are correct that the blob contains Japanese and Chinese characters but I was expecting that using the XMLTYPE constructor would convert the character set albeit with some data loss or then not display the Chinese and Japanese characters correctly.
It seems to me that XMLTYPE is not handling/interpreting the BOM contained in the BLOB since even converting the BLOB to CLOB is resulting in an error. If I use SUBSTR and ignore the BOM to extract the XML from the BLOB then it works and as expected the Chinese and Japanese characters are not displayed correctly, they are displayed as '¿' corresponding to the lines beginning with L81, L86 & L87 , see below:
select xmltype(SUBSTR(BLOB2CLOB(srce_form_detail),4)) from SRCE_FORM
<?xml version="1.0" encoding="utf-8"?>
<Root CRC="-4065505">
<Header Converted="0">
<Version Type="String" Value="512" />
<Revision Type="String" Value="29" />
<SunSystemsVersion Type="String" Value="" />
<Date Type="String" Value="20080724" />
<Time Type="String" Value="165953" />
<DAG Type="String" Value="" />
<ChkID Type="String" Value="" />
<FormType Type="String" Value="1" />
<DB Type="String" Value="AllBusinessUnits" />
<FuncID Type="String" Value="SOE" />
<Status Type="String" Value="" />
<FileType Type="String" Value="SFL" />
<Descriptions>
<Default Type="String" Value="Sales Order Entry" />
<L01 Type="String" Value="Sales Order Entry" />
<L33 Type="String" Value="Saisie commande client" />
<L34 Type="String" Value="Entrada de ¿¿rdenes de venta" />
<L39 Type="String" Value="Inserimento ordine di vendita" />
<L49 Type="String" Value="Auftr¿¿ge erfassen" />
<L55 Type="String" Value="Entrada de pedido de venda" />
<L81 Type="String" Value="¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿" />
<L86 Type="String" Value="¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿" />
<L87 Type="String" Value="¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿" />
</Descriptions>
</Header>Can you please let me know how I can extract the binary dump of the BLOB and post it on the forum as I don't know how to do this. Below is snippet of the hexadecimal dump, that includes the BOM. I can post the full hexadecimal dump if this can help you to reproduce the error ?
EFBBBF3C3F786D6C2076657273696F6E3D22312E302220656E636F64696E673D227574662D38223F3E0D0A3C526F6F74204352433D222D34303635353035223E0D0A20203C48656164657220436F6E7665727465643D2230223E0D0A202020203C56657273696F6E20547970653D22537472696E67222056616C75653D2235313222202F3E0D0A202020203C5265766973696F6E20547970653D22537472696E67222056616C75653D22323922202F3E0D0A202020203C53756E53797374656D7356657273696F6E20547970653D22537472696E67222056616C75653D2222202F3E0D0A202020203C4461746520547970653D22537472696E67222056616C75653D22323030383037323422202F3E0D0A202020203C54696D6520547970653D22537472696E67222056616C75653D2231363539353322202F3E0D0A202020203C44414720547970653D22537472696E67222056616C75653D2222202F3E0D0A202020203C43686B494420547970653D22537472696E67222056616C75653D2222202F3E0D0A202020203C466F726D5479706520547970653D22537472696E67222056616C75653D223122202F3E0D0A202020203C444220547970653D22537472696E67222056616C75653D22416C6C427573696E657373556E69747322202F3E0D0A202020203C46756E63494420547970653D22537472696E67222056616C75653D22534F4522202F3E0D0A202020203C53746174757320547970653D22537472696E67222056616C75653D2222202F3E0D0A202020203C46696C655479706520547970653D22537472696E67222056616C75653D2253464C22202F3E0D0A202020203C4465736372697074696F6E733E0D0A2020202020203C44656661756C7420547970653D22537472696E67222056616C75653D2253616C6573204F7264657220456E74727922202F3E0D0A2020202020203C4C303120547970653D22537472696E67222056616C75653D2253616C6573204F7264657220456E74727922202F3E0D0A2020202020203C4C333320547970653D22537472696E67222056616C75653D2253616973696520636F6D6D616E646520636C69656E7422202F3E0D0A2020202020203C4C333420547970653D22537472696E67222056616C75653D22456E747261646120646520C3B37264656E65732064652076656E746122202F3E0D0A2020202020203C4C333920547970653D22537472696E67222056616C75653D22496E736572696D656E746F206F7264696E652064692076656E6469746122202F3E0D0A2020202020203C4C343920547970653D22537472696E67222056616C75653D224175667472C3A4676520657266617373656E22202F3E0D0A2020202020203C4C353520547970653D22537472696E67222056616C75653D22456E74726164612064652070656469646F2064652076656E646122202F3E0D0A2020202020203C4C383120547970653D22537472696E67222056616C75653D22E58F97E6B3A8E382AAE383BCE38380E383BCE585A5E58A9B22202F3E0D0A2020202020203C4C383620547970653D22537472696E67222056616C75653D22E99480E594AEE8AEA2E58D95E5BD95E585A522202F3E0D0A2020202020203C4C383720547970653D22537472696E67222056616C75653D22E98AB7E594AEE8A882E596AEE98C84E585A522202F3E0D0A202020203C2F4465736372697074696F6E733E0D0A20203C2F4865616465723E0D0A20203C466F726D3E0D0A202020203C4372656174696F6E4C616E6720547970653D22537472696E67222056616C75653D223031222053464C4F6E6C793D223122202F3E0D0A202020203C416374696F6E733E0D0A2020202020203C5065726D697373696F6E73202F3E0D0A202020203C2F416374696F6E733E0D0A202020203C48656C70202F3E0D0A202020203C466F6E743E0D0A2020202020203C446566466F6E7453697A6520547970653D22496E7465676572222056616C75653D2238222053464C4F6E6C793D223122202F3E0D0A2020202020203C466F6E743E0D0A20202020202020203C4C616E677561676520547970653D22537472696E67222056616C75653D2244656661756C7422202F3E0D0A20202020202020203C466F6E744E616D6520547970653D22537472696E67222056616C75653D224D532053616E7320536572696622202F3E0D0A2020202020203C2F466F6E743E0D0A2020202020203C466F6E743E0D0A20202020202020203C4C616E677561676520547970653D22537472696E67222056616C75653D22383122202F3E0D0A20202020202020203C466F6E744E616D6520547970653D22537472696E67222056616C75653D224D5320554920476F7468696322202F3E0D0A2020202020203C2F466F6E743E0D0A202020203C2F466F6E743E0D0A202020203C436F6E74726F6C733E0D0A2020202020203C436F6E74726F6C3E0D0A20202020202020203C436F6E74726F6C5479706520547970653D22496E746567657222204644496E743D2231222056616C75653D223122202F3E0D0A20202020202020203C446973706C61795479706520547970653D22537472696E6722204644496E743D2230222056616C75653D22466F726D2057696E646F77222053464C4F6E6C793D223122202F3E0D0A20202020202020203C43617074696F6E20547970653D22537472696E6722204644496E743D2230222056616C75653D2253597C3F7C55547C3F7C3F3F3F3F3F3F22202F3E0DThe XML I posted so far is actually truncated as the full XML is quite big but I showed the beginning of it as this is the section I believe that is not being handled properly. Furthermore I am able to write the BLOB out to a file successfully without any errors using DBMS_LOB & UTL_FILE.PUT_RAW and this seems to handle the BOM without any issues but what I really need to do is read a single node in the XML and update it directly preferably using XMLTYPE directly with the BLOB.
I would welcome your suggestions on how best to read a single node and update it when the XML is contained in a BLOB.
Regards,
Mohinder -
I am having a issue installing Adobe Acrobat XI. I am running Windows 8.1. When go to install it gets an error. The error is with transform in registry and will not install product. I am looking at how I can fix this registry problem.
I have tried to uninstall all Abode Acrobat installations but one file remains and refuses to be uninstalled. It gives me this error : Error applying Transforms . Verify that specified paths are valid. It was installed on Sept 18 2014. I have downloaded a Transform update but it tells I do not have a Adobe Acrobat product installed.Hi all,
Sylonious, did you manage to sort this problem out? I have been experiencing similar problems. I think my problem was because I had many different versions of JDKs. I have done a complete re-install. I would be really grateful to you (and anyone else) for help with this problem.
I have re-installed JSDK1.4.2_03, set the "path" variable to "C:\JSDK1.4.2_03".
When I compile using "javac" I get an error saying "javac" is not recognised.
When I compile using "C:\j2sdk1.4.2_03\bin\javac Freq.java" no error is thrown.
Every time I try to run a java file, I always get the NoClassDefFound error. When run with the -verbose option, files are loaded from C:\Program Files\Java\j2re1.4.2_03\bin - is this correct?
I have removed all previous references to java in the registry editor.
Please help !
Regards,
Vipul
Maybe you are looking for
-
Excel VBA to access sharepoint list without permission
Hi, I do find solution to retrieve the SharePoint list from excel VBA but my problem now is on the SharePoint permission to the list. I am developing this solution in excel because i don't want the particular user to access the list direct from the p
-
0COMP_CODE Local currency different than 0COMPANY currency
Hello guys, We are implementing BCS for our client and the scenario for the same is as follows: We are using ECC 6.0, BW 3.5 with SEM 4.0., we have activated New GL Accounting in ECC 6.0. and have been able to bring in data from totals table FAGLFLEX
-
I would like to set my payment options in a way that will not tie my user id to a credit card, but will allow me to use gift cards to purchase apps. Is this possible? How can I do this? Do I ever have to enter a credit card in order to pay with gi
-
Why does Acrobat installation on new PC not accept valid product number?
I bought Acrobat 8 in 2011 and have a valid product number. I just bought a new PC with Windows 8. I downloaded Acrobat 5 from the Adobe website. When it asked for the product ID, I put in the number, and got a response that the number is invalid. I
-
Hi, We are in SRM 5.0 ECS, with support pack 11. When a PO is created with account assignment category project statistical (WBS element), with value exactly matching the budget availability, PO gets created, however if tried doing any changes to the