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&amp;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;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 &amp;)
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;amp; John Doe</name></test>.. no exceptions and displays the following:
Hello Jane &amp;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 PM

Hi 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&amp;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&amp;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&#38;John Doe</p>
</body>
</html>
Not perfect but the method seems supported too.
Edited by: odie_63 on 11 sept. 2011 20:43

Similar Messages

  • Do multiple bindings still causing issues for PowerPivot workbook in SharePoint 2013

    Do multiple bindings still causing issues for PowerPivot workbook in SharePoint 2013 as they did in SP2010? Here is the link about 2010 issue :
    http://support.microsoft.com/kb/2712071

    Hi Norm,
    I searched internally, and I couldn't find any information related to this issue applied to SharePoint 2013, it shouldn't exist in SharePoint 2013.
    Thanks,
    Daniel Yang
    Forum Support
    Please remember to mark the replies as answers if they help and unmark them if they provide no help. If you have feedback for TechNet Subscriber Support, contact
    [email protected]
    Daniel Yang
    TechNet Community Support

  • 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. Kazimir

    Hi,
    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.

  • XMLTYPE Transform works differently in Oracle 10.1 and 11.2

    We are migrating our applications from Oracle 10.1g to 11.2g. We have a number of PL/SQL routines that transform incoming/outgoing XML using the XMLType Transform method. The XSLTs that we use do not seem to work in 11.2. For example, the code below is a simplification of what we're doing. This sample code uses hard-coded input and xslt to illustrate the point. The same code has very different outputs when run in 10.1 and 11.2. In 10.1, the transformation works. It also works using files in an xml tool. In 11.2, none of the input XML is transformed. The only output is the extra <sd:StandardBusinessDocument... that is hard-coded into the xslt as a wrapper.
    E.g.
    {code}
    declare
    out_sbd xmltype := xmltype('<OT_SBD_HEADER>
        <HEADER_VERSION>1.0</HEADER_VERSION>
        <SENDERS>
            <OT_SENDER_RECEIVER>
                <IDENTIFIER>COGSD</IDENTIFIER>
                <IDENTIFIER_AUTHORITY>urn:olgr.qld.gov.au:cogs</IDENTIFIER_AUTHORITY>
            </OT_SENDER_RECEIVER>
        </SENDERS>
        <RECEIVERS>
            <OT_SENDER_RECEIVER>
                <IDENTIFIER>PORTAL</IDENTIFIER>
                <IDENTIFIER_AUTHORITY>urn:olgr.qld.gov.au:portal</IDENTIFIER_AUTHORITY>
            </OT_SENDER_RECEIVER>
        </RECEIVERS>
        <DOCUMENT_INDENTIFICATION>
            <STANDARD>urn:olgr.qld.gov.au</STANDARD>
            <TYPE_VERSION>1.1</TYPE_VERSION>
            <INSTANCE_IDENTIFIER>c11ab0c6-22e7-4132-88f8-f81e88cde75c</INSTANCE_IDENTIFIER>
            <TYPE>licenceInformation</TYPE>
            <CREATION_DATE>2012-05-30T13:55:41.167125+10:00</CREATION_DATE>
        </DOCUMENT_INDENTIFICATION>
        <BUSINESS_SCOPE>
            <OT_SBD_HEADER_SCOPE>
                <SCOPE_TYPE>get</SCOPE_TYPE>
                <SCOPE_INSTANCE_IDENTIFIER>GET_GAMING_STATISTICS_DATA</SCOPE_INSTANCE_IDENTIFIER>
            </OT_SBD_HEADER_SCOPE>
        </BUSINESS_SCOPE>
    </OT_SBD_HEADER>');
    transformed_out_sbd xmltype;
    sbd_header_out_xslt xmltype := xmltype('<?xml version="1.0" encoding="ISO-8859-1"?>
    <!--
    This file was generated by Altova MapForce 2011r2sp1
    YOU SHOULD NOT MODIFY THIS FILE, BECAUSE IT WILL BE
    OVERWRITTEN WHEN YOU RE-RUN CODE GENERATION.
    Refer to the Altova MapForce Documentation for further details.
    http://www.altova.com/mapforce
    -->
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" exclude-result-prefixes="xs">
      <xsl:output method="xml" encoding="UTF-8" indent="yes"/>
      <xsl:template match="/">
        <sd:StandardBusinessDocument xsi:schemaLocation="http://www.unece.org/cefact/namespaces/StandardBusinessDocumentHeader sbd.xsd" xmlns:sd="http://www.unece.org/cefact/namespaces/StandardBusinessDocumentHeader" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
          <xsl:for-each select="*[local-name()=&apos;OT_SBD_HEADER&apos; and namespace-uri()=&apos;&apos;]">
            <xsl:variable name="var1_DOCUMENTINDENTIFICATION" select="*[local-name()=&apos;DOCUMENT_INDENTIFICATION&apos; and namespace-uri()=&apos;&apos;]"/>
            <xsl:variable name="var2_MANIFEST" select="*[local-name()=&apos;MANIFEST&apos; and namespace-uri()=&apos;&apos;]"/>
            <xsl:variable name="var3_resultof_cast" select="string($var1_DOCUMENTINDENTIFICATION/*[local-name()=&apos;MULTIPLE_TYPE&apos; and namespace-uri()=&apos;&apos;])"/>
            <StandardBusinessDocumentHeader>
              <HeaderVersion>
                <xsl:value-of select="string(HEADER_VERSION)"/>
              </HeaderVersion>
              <xsl:for-each select="SENDERS">
                <xsl:variable name="var4_OTSENDERRECEIVER" select="OT_SENDER_RECEIVER"/>
                <Sender>
                  <Identifier>
                    <xsl:attribute name="Authority">
                      <xsl:value-of select="string($var4_OTSENDERRECEIVER/IDENTIFIER_AUTHORITY)"/>
                    </xsl:attribute>
                    <xsl:value-of select="string($var4_OTSENDERRECEIVER/IDENTIFIER)"/>
                  </Identifier>
                </Sender>
              </xsl:for-each>
              <xsl:for-each select="RECEIVERS">
                <xsl:variable name="var5_OTSENDERRECEIVER" select="OT_SENDER_RECEIVER"/>
                <Receiver>
                  <Identifier>
                    <xsl:attribute name="Authority">
                      <xsl:value-of select="string($var5_OTSENDERRECEIVER/IDENTIFIER_AUTHORITY)"/>
                    </xsl:attribute>
                    <xsl:value-of select="string($var5_OTSENDERRECEIVER/IDENTIFIER)"/>
                  </Identifier>
                </Receiver>
              </xsl:for-each>
              <DocumentIdentification>
                <Standard>
                  <xsl:value-of select="string($var1_DOCUMENTINDENTIFICATION/STANDARD)"/>
                </Standard>
                <TypeVersion>
                  <xsl:value-of select="string($var1_DOCUMENTINDENTIFICATION/TYPE_VERSION)"/>
                </TypeVersion>
                <InstanceIdentifier>
                  <xsl:value-of select="string($var1_DOCUMENTINDENTIFICATION/INSTANCE_IDENTIFIER)"/>
                </InstanceIdentifier>
                <Type>
                  <xsl:value-of select="string($var1_DOCUMENTINDENTIFICATION/TYPE)"/>
                </Type>
                <MultipleType>
                  <xsl:value-of select="string(((normalize-space($var3_resultof_cast) = &apos;true&apos;) or (normalize-space($var3_resultof_cast) = &apos;1&apos;)))"/>
                </MultipleType>
                <CreationDateAndTime>
                  <xsl:value-of select="string($var1_DOCUMENTINDENTIFICATION/CREATION_DATE)"/>
                </CreationDateAndTime>
              </DocumentIdentification>
              <Manifest>
                <NumberOfItems>
                  <xsl:value-of select="string((string($var2_MANIFEST/NUMBER_OF_ITEMS)))"/>
                </NumberOfItems>
                <xsl:for-each select="$var2_MANIFEST/MANIFEST_ITEMS">
                  <xsl:variable name="var6_OTMANIFESTITEM" select="OT_MANIFEST_ITEM"/>
                  <ManifestItem>
                    <MimeTypeQualifierCode>
                      <xsl:value-of select="string($var6_OTMANIFESTITEM/MIME_TYPE)"/>
                    </MimeTypeQualifierCode>
                    <UniformResourceIdentifier>
                      <xsl:value-of select="string($var6_OTMANIFESTITEM/RESOURCE_IDENTIFIER)"/>
                    </UniformResourceIdentifier>
                    <Description>
                      <xsl:value-of select="string($var6_OTMANIFESTITEM/DESCRIPTION)"/>
                    </Description>
                  </ManifestItem>
                </xsl:for-each>
              </Manifest>
              <xsl:for-each select="BUSINESS_SCOPE">
                <xsl:variable name="var7_OTSBDHEADERSCOPE" select="OT_SBD_HEADER_SCOPE"/>
                <BusinessScope>
                  <Scope>
                    <Type>
                      <xsl:value-of select="string($var7_OTSBDHEADERSCOPE/SCOPE_TYPE)"/>
                    </Type>
                    <InstanceIdentifier>
                      <xsl:value-of select="string($var7_OTSBDHEADERSCOPE/SCOPE_INSTANCE_IDENTIFIER)"/>
                    </InstanceIdentifier>
                    <Identifier>
                      <xsl:value-of select="string($var7_OTSBDHEADERSCOPE/SCOPE_IDENTIFIER)"/>
                    </Identifier>
                  </Scope>
                </BusinessScope>
              </xsl:for-each>
            </StandardBusinessDocumentHeader>
          </xsl:for-each>
        </sd:StandardBusinessDocument>
      </xsl:template>
    </xsl:stylesheet>
    BEGIN
    transformed_out_sbd := out_sbd.transform (sbd_header_out_xslt); -- transform out_sbd using the xslt hard-coded above
    INSERT INTO z_clob_log (id, clob_name, clob_desc, clob_doc)  --- log the output to a clob column in a table
    SELECT (select nvl(max(id),0)+1 from _clob_log),
                   to_char(sysdate,'yyyymmdd hh24:mi:ss')||' - TRANSFORMED OUT_SBD',
                   transformed_out_sbd.getClobVal
    FROM dual;
    COMMIT;
    END;
    {code}
    In 10.1, the output is as expected, the same as doing the transformation using files in an xml tool.
    {code}
    <sd:StandardBusinessDocument xsi:schemaLocation="http://www.unece.org/cefact/namespaces/StandardBusinessDocumentHeader sbd.xsd" xmlns:sd="http://www.unece.org/cefact/namespaces/StandardBusinessDocumentHeader" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <StandardBusinessDocumentHeader>
        <HeaderVersion>1.0</HeaderVersion>
        <Sender>
          <Identifier Authority="urn:olgr.qld.gov.au:cogs">COGSD</Identifier>
        </Sender>
        <Receiver>
          <Identifier Authority="urn:olgr.qld.gov.au:portal">PORTAL</Identifier>
        </Receiver>
        <DocumentIdentification>
          <Standard>urn:olgr.qld.gov.au</Standard>
          <TypeVersion>1.1</TypeVersion>
          <InstanceIdentifier>c11ab0c6-22e7-4132-88f8-f81e88cde75c</InstanceIdentifier>
          <Type>licenceInformation</Type>
          <MultipleType>false</MultipleType>
          <CreationDateAndTime>2012-05-30T13:55:41.167125+10:00</CreationDateAndTime>
        </DocumentIdentification>
        <Manifest>
          <NumberOfItems/>
        </Manifest>
        <BusinessScope>
          <Scope>
            <Type>get</Type>
            <InstanceIdentifier>GET_GAMING_STATISTICS_DATA</InstanceIdentifier>
            <Identifier/>
          </Scope>
        </BusinessScope>
      </StandardBusinessDocumentHeader>
    </sd:StandardBusinessDocument>
    {code}
    In 11.2, none of the original xml document is included in the output, only the <sd: StandardBusinessDocument ..../>
    {code}
    <sd:StandardBusinessDocument xsi:schemaLocation="http://www.unece.org/cefact/namespaces/StandardBusinessDocumentHeader sbd.xsd" xmlns:sd="http://www.unece.org/cefact/namespaces/StandardBusinessDocumentHeader" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
    {code}
    The same occurs using the SQL XMLTransform function, e.g. applying the following with the above xml and xslt, except it outputs a separate closing tag </sd:Standard...>
    select xmltransform(out_sbd, sbd_header_out_xslt) into transformed_out_sbd from dual;
    Q: Any ideas? Are there any changes in 11g 11.2 that require major changes to xslt?
    We have a lot of rewriting to do if we cannot get this to work!

    Hi Eduardo,
    Report this as a bug to Oracle Support.
    The problem lies in the namespace-uri() function : the comparison with an empty string is not resolved correctly so no node is ever selected in the first xsl:for-each.
    If you need a workaround, there are a few you can test :
    1) If input documents actually are in no namespace (such as in your sample), remove every namespace-uri() occurrences from the stylesheet.
    2) The other way around, you can give your input document a dummy namespace and now reference it in the stylesheet. The namespace-uri() test will work in this case.
    3) Replace occurrences of namespace-uri() with a slightly more elaborate test that'll handle empty namespace specifically, for example :
    <xsl:variable name="nsuri"></xsl:variable>
    ( namespace-uri()=$nsuri or (not($nsuri) and not(namespace-uri())) )
    Since you're working with generated stylesheets, I understand that none of the above options are really satisfactory.
    If I had to workaround the issue, I'd probably go with the 2nd option which involves a smaller amount of refactoring.

  • [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$

  • XMLTYPE.Transform()  issue with namespace-alias

    I have an XSLT that uses the namespace-alias. When i use the XMLTYPE.Transform() funtion in oracle it disregards the alias and outputs the stylesheet prefix rather than outputting result prefix
    Eg:
    The XSLT has the follwing lines:
    xmlns:wxsl="http://www.w3schools.com/w3style.xsl"
    xmlns:wxmlns="http://temp.xmlns"
    <xsl:namespace-alias stylesheet-prefix="wxsl" result-prefix="xsl"/>
    <xsl:namespace-alias stylesheet-prefix="wxmlns" result-prefix="xmlns"/>
    <wxsl:element name="my:myFields">
    </wxsl:element>
    The would output the following XML:
    <wxsl:element name="my:myFields">
    </wxsl:element>
    Its just doen't uses the result prefix.
    Is this a bug in oracle XMLTYPE.Transform function ?

    Please provide a small working example of an XML and XSLT that demonstrates what you have described. Also include your version of Oracle (4 digits i.e. 10.2.0.4). It is easier when others don't have to guess at what you have coded. As a general posting note, see the FAQ in the upper right for how to use the tag to wrap code/SQL/etc to retain formatting.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

  • Xmltype.transform and xsl:output method="html"

    hi, 9.2.0.4 winxp,
    i wonder whether xmltype.transform regards any output instructions in the stylesheet. i requested any of xml, html and text and always got the same result?
    any ideas or hints to more info?
    regards peter

    Sorry for jumping in on this thread, but I have a question regarding you reply. I have an XSL stylesheet that preforms XML to HTML conversion. Everything works correctly with the exception of those HTML tags that are not weel formed. Using your example if I have something like:
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="html"/>
    <input type="text" name="{NAME}" size="{DISPLAY_LENGTH}" maxlength="{LENGTH}"></input>
    </xsl:stylesheet>
    It would render HTML in the format of
    <HTML>
    <input type="text" name="in1" size="10" maxlength="20"/>
    </HTML>
    While IE can handle this Netscape can not. Is there anyway to generate completely cross browser complient HTML with XSL?
    Thanks!

  • 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 Groenendal

    Did 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.

  • 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.

  • 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 Seriani

    1)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.

  • Essbase 11.1.1 not escaping ampersand in XMLA

    We are using Microsoft SQL Server Reporting Services (SSRS 2008 SP1 CU3) to report against Hyperion Essbase 11.1.1 using the XMLA interface. When reporting against specific cubes with "&" (ampersands) in the name of measures (such as "Services & Support"), we are running into problems where SSRS will reject the message as being "unrecognized".
    Troubleshooting have shown that Essbase is not correctly escaping the ampersand characters in the messages being send by Essbase to SSRS. I'll include an example of the XML being sent by Essbase:
    <EXPRESSION>"EBITDA" - "Depreciation & Amortization"-"Goodwill & Intangibles"-"Other Income & Expense"-"806140";</EXPRESSION> <---- Ampersand not escaped
    <MEASURE_NAME>Customization &-a-m-p-; Implementation</MEASURE_NAME> <--- Ampersand escaped, note: this forum interprets the escaping of ampersand's and I added dashes to illustrate the point
    Can somebody please confirm if there is a way to work around this problem in Essbase (setting?) or if this is a bug in the interface.

    Hi,
    I can only comment that &---> is reserved for substitution variable in Essbase. It may be creating this kind of error.
    Elsewhere we use " " to use &.
    Thanks
    Focusthread Hyperion Trainer
    [http://focusthread.com/training]

  • 40D raw .CR2 files still causing 'Unsupported Image File' error

    I have the most recent version of Leopard 10.5.1 and the newest version of Aperture 1.5.6 (2J2). Often times I open a RAW image shot with a Canon 40D (.cr2 file), I get the red screen "unsupported Image File" error message. Color mode is RGB. These were shot with RAW plus JPEG (not SRAW). It doesn't happen on every image shot at the same time in the same way, just some of the images. Can anyone advise why I would still be having this issue so long after Apple is offering 40D support? I've tried rebuilding my library data base to no success. I've tried reinstalling aperture. What next? Getting very frustrated, thanks!

    hi, sazer01
    sazer01 wrote:
    I have the most recent version of Leopard 10.5.1 and the newest version of Aperture 1.5.6 (2J2). Often times I open a RAW image shot with a Canon 40D (.cr2 file), I get the red screen "unsupported Image File" error message. Color mode is RGB. These were shot with RAW plus JPEG (not SRAW).
    I use Nikons and sometimes get a message like that. This might not be Aperture causing this. Blow out the connector holes on your memory cards and pins inside the cameras where the card connects. If the error is on the same frames all the time reformat your card a couple of times before using and make sure the card is seated properly. Don't turn off the camera immediately after taking the shot but let the camera finish the process of writing the photo frame onto the card.
    Have you opened the frames in Preview to check if it see it?
    victor

  • Brushes Still Cause Freeze Up

    I posted last week about this same problem. I have 11k images in library, the image I'm working on is RAW and 11mb in size. Before making any other changes to the image I make a curves adjustment via curves brick and then click the gear symbol to brush it in and it appears to work fine. If then I make a highlight/shadow adjustment and attempt to brush in, AP3 freezes and I have to force quit. In AP3 preferences I have "new projects automatically generate previews" unchecked and "use embedded jpeg when possible" checked. Any ideas on just why this is happening?

    Hi BGreg! Thanks for the Rember site. I ran the test on the RAM (1 pass.) It detected no problems. Card is Kingston/Micron 1GB PC2700 333MHZ 200 pin DDR SODIMM "guaranteed compatible."
    I still suspect possible overheating caused by installing (2) 1GB cards under the steel cover. It gets pretty hot. I left this cover off overnight during the Rember test, and continue to leave it off (being careful.) Powerbook hasn't crashed so far.
    I wonder if anyone has successfully run (2) 1GB cards in the 1.33 GHz G4PowerPC Powerbook 17 inch without it freezing up after running awhile? If so, did you install a 1GHz card from Apple or another vendor?
    Wonder if Apple has itself discovered an overheating problem as it doesn't seem to offer 2GB with this model of Powerbook anymore?
    Best regards,
    Mike

  • Escaping ampersand

    How can I include an & ampersand on a query?
    CASE
         WHEN vw_lui.cod_tipo_documento = 'A' THEN 'Sem limite de tempo de utiliza\&ccedil;\&atilde;o para todos os produtos'
         WHEN vw_lui.cod_tipo_documento = 'B' THEN 'Sem limite de tempo de utiliza\&ccedil;\&atilde;o para determinado(s) produto(s)'
         WHEN vw_lui.cod_tipo_documento = 'C' THEN 'Limite de tempo de utiliza\&ccedil;\&atilde;o negoci&aacute;vel'
    END AS AS descricao_lui
    The query is running inside a procedure.
    I've already tried with: SET DEFINE ~, SET ESCAPE '\' and SET SCAN OFF, with no success.

    This thread should help: Ampersand  help
    '||chr(38)||'
    CASE
    WHEN vw_lui.cod_tipo_documento = 'A' THEN 'Sem limite de tempo de utiliza'||chr(38)||'ccedil;'||chr(38)||'atilde;o para todos os produtos'
    WHEN vw_lui.cod_tipo_documento = 'B' THEN 'Sem limite de tempo de utiliza'||chr(38)||'ccedil;'||chr(38)||'atilde;o para determinado(s) produto(s)'
    WHEN vw_lui.cod_tipo_documento = 'C' THEN 'Limite de tempo de utiliza'||chr(38)||'ccedil;'||chr(38)||'atilde;o negociável'
    END AS AS descricao_lui
    Maybe this will work?
    Jim P.
    Message was edited by:
    Jim P

  • Large attachments -- now deleted -- still causing problems in Outlook

    If anyone routes a Gmail account to Microsoft Outlook on a MacBook Pro, I could sure use your expertise.
    I made a huge mistake of trying to email out large video files as attachments.  It didn't work, which I was prepared for, but I had no idea the ongoing problems it could cause.  I located the email messages containing the large attachments in my Outbox and deleted them and emptied the trash. Thought that would do it, but apparently not.
    Now, when I open Outlook, as soon as I make my first click to do anything at all, I get the swirling rainbow circle and eventually this error message from Gmail:
    [ALERT] Message too large. http://support.google.com/mail/bin/answer.py?8770 ... which is an unhelpful blurb about large attachments not working.
    Then, Outlook remains completely frozen, and the only thing I can do is force quit it.  It's completely unusable.
    Do these huge files still reside somewhere they are trying to be sent?  How can I find them and delete them?
    If anyone has ideas, I would be truly grateful.  I'm not even sure whether I should be contacting Apple, MS or Google for help.  Thank you for any suggestions!

    ramsmith wrote:
    Unfortunately the references to the deleted items are still there. It is the users default calendar and we have a naming convention for these. :-(I see the same thing after re-creating the calendar. sigh
    It seems no triggers are fired when i delete the calendar to remove entries in the ics50deletelog.db It does seem there is no way to individually purge delete log entries for a user. You should log a Sun support request for this issue/limitation.
    From another post on these forums it seems that purging the ics50deletelog.db is not a good idea when you have outlook connector clients. Is this true?You can (and should) purge the delete log database -- however you need to consider how far back you go with delete log entries. There is a discussion on this very topic here:
    http://docs.sun.com/app/docs/doc/819-5200/6n7a49o0f?l=en&a=view
    Information on purging the database here:
    http://docs.sun.com/app/docs/doc/819-4654/acakn?l=en&a=view
    Regards,
    Shane.

Maybe you are looking for

  • Submitting a pdf form to a SharePoint 2010 library

    Hello, I have a pdf form that was created in Adobe LiveCycle. Right now the submit form button it configured to send the form to an email address. I need to be able to submit the form to a SharePoint 2010 document library but I can't get it to work.

  • ALV OO and refreshing the ALV grid

    Hi, i have some problems with my ALV 00 program. On screen 1 i have to fill in a material number. For that material i'm getting some data and show in screen 2 in a ALV grid. Via BACK-button i'm getting back to screen 1 and can fill in another materia

  • Monitor Internet activity.

    I am having problems with the recorded usage via my ISP. Is there any way I can log all on-line activity from my computer which can then be checked against the ISP's usage record? It could be that someone is deliberately or accidentally logging into

  • Tecra A10-104 0 Need CD-ROM driver for DOS

    Hi - I am after a DOS Driver for the A10 so we can create bootable images for our laptops - We have these Images for the A09 Model - but the A10 Must have a different CD/DVD drive - Is there a Genereic one that we can use? We Have the TEAC DV-W28S-RT

  • Airport problems (bug report)

    To put "the bottom-line up front", I'd like to know if anyone can put me in contact with Apple's Airport software engineers (or can forward this to them so a bug fix can be released). I have composed as detailed of a description of the bug as possibl