Xsql:query xml error

I am getting an error when running an xsql:query. I can run simple queries, so it is not a connection porblem. The xml parses in jDeveloper10g so it appears to not be ill-formed XML. I have tried containing the SQL statement in CDATA tags, and tried replacing < and > with their entity references &lt; and & gt; and I have tried both at the same time.
The Query is as follows
<page xmlns:xsql="urn:oracle-xsql" connection="V7Test">
<xsql:query fetch-size="100" max-rows="-1" null-indicator="no" tag-case="lower">
<![CDATA[
select
ts_jobs.job_number,
sum(ts_jobs.period_hours),
ts.period_end_date
from
etr.etr_timesheet_days ts_days,
etr.etr_timesheet_hours ts_hours,
etr.etr_timesheet_jobs ts_jobs,
etr.etr_timesheets ts
where
ts_hours.hours != 0
and (
(nvl(ts_jobs.corrected_id,0) = 0
and nvl(ts_hours.corrected_id,0) = 0
and ts.date_sent_to_pmjcap >=ts_hours.date_entered)
or (ts.date_sent_to_pmjcap < ts_hours.date_corrected)
and ts_days.timesheet_day_id = ts_hours.timesheet_day_id
and (
(ts_days.period_date in ('01-JAN-03','02-JAN-03','03-JAN-03')
and ts.period_end_date = '03-JAN-03')
or (ts_days.period_date in ('27-DEC-03','28-DEC-03','29-DEC-03','30-DEC-03','31-DEC-03')
and ts.period_end_date = '02-JAN-04')
and ts_days.timesheet_id = ts.timesheet_id
and ts_jobs.timesheet_job_id = ts_hours.timesheet_job_id
and (
(ts_jobs.job_number in (9719003,9849003,9849001,9719001))
or (ts_jobs.job_number in (9719333,9849333,9849334,9719334))
or (ts_jobs.job_number in (9719004,9849004,9719009,9849009))
or (ts_jobs.job_number in (9719444,9849444,9849445,9719445))
and ts.timesheet_id = ts_jobs.timesheet_id
and ts.employee_number = '050405'
and exists
(select
emp_clock,
date_incurred
from
asi_apps.vw00plw
where
substr(job_number,-8) = ts_jobs.job_number
and date_incurred = ts.period_end_date
and emp_clock = lpad('050405',6,0)
group by
ts_jobs.job_number,
ts.period_end_date,
ts_hours.hours
]]>
</xsql:query>
The Error I get is as follows
<?xml version="1.0" encoding="windows-1252" ?>
- <!--
| Uncomment the following processing instruction and replace
| the stylesheet name to transform output of your XSQL Page using XSLT
<?xml-stylesheet type="text/xsl" href="YourStylesheet.xsl" ?>
-->
- <page>
<error>oracle.xml.sql.OracleXMLSQLException: Character ')' is not allowed in an XML tag name.</error>
</page>
I think it is parsing a '<' as a tag delimiter.
Anyone have a similiar problem? a workaround?
regards,
Bill

I found the answer. The problem is the selected 'column' sum(ts_jobs.period_hours). Apparently, the XSQL servlet attempts to assign the value 'sum(ts_jobs.period_hours)' directly to an XML element.total_hours. That fails.
The work-around is to use an alias. This code works
sum(ts_jobs.period_hours) total_hours,
A fix to the XSQL servlet would be in order, perhaps adding a CDATA container around 'columns' that are are normal SQL functions.
regards,
Bill

Similar Messages

  • XSQL arbitrary adhoc query - misleading error

    Newbie question: How can I allow arbitrary adhoc queries without getting misleading errors? (I am aware this can be a security hazard)
    Trying
    CREATE table test5(tla varchar2(3), description varchar2(80), primary key (tla))
    on the following .xsql page
    <?xml version="1.0"?>
    <xsql:query connection="demo" xmlns:xsql="urn:oracle-xsql"
    null-indicator="yes"
    allow-client-style="yes">
    {@query}
    </xsql:query>
    yields a
    <?xml version="1.0" ?>
    <ERROR>oracle.xml.sql.OracleXMLSQLException: ORA-01009: missing mandatory parameter</ERROR>
    Note that despite the error the test5 database is actually created and usable in SQLPlus.
    Retrying the same xsql query a little later confirms this and yields
    <?xml version="1.0" ?>
    - <xsql-error code="955" action="xsql:query">
    <statement>create table test5(tla varchar2(3), description varchar2(80), primary key (tla))</statement>
    <message>ORA-00955: name is already used by an existing object</message>
    </xsql-error>
    Any ideas on how to avoid the misleading error message?
    Otherwise XSQL works nicely.
    Thanks.
    null

    <xsql:query> expects a query to be done.
    Use <xsql:dml> if you want other kinds of DML/DDL statements to be done.

  • XMLElement not returning XML with xsql:query

    I am trying to use a select statement containing XMLElement, XMLAgg and XMLForest functions from a xsql servlet.
    <page xmlns:xsql="urn:oracle-xsql" connection="HOM_WISP">
    <xsql:query row-element=""     rowset-element="STATEMENT">
    SELECT
    XMLElement("GROUP", XMLAttributes(gst_group AS GSTGroup,
    display_group AS DisplayGroup),
    XMLAgg(
    XMLElement("PAYMENTDETAIL",
    XMLForest(phase_type,
    contract_num,
    mark_block,
    cut_permit,
    destination,
    stratum_code,
    species_code,
    sort_code,
    truck,
    back_haul,
    uom_desc,
    uom_code,
    gst_exempt_flag,
    pay_deduct_desc,
    actual_rate,
    gst_registrant_num,
    load_count,
    quantity,
    volume,
    earnings)))).getClobVal() as PAYMENTITEM
    FROM ws_cntr_statement_vw
    GROUP BY gst_group, display_group
    </xsql:query>
    </page>
    When XML is returned only the out most XML as follows the inner elements are text. I truncated the output but you can see that GROUP and PAYMENTDETAIL are not elements but text. I want them all to be elements.
    <page>
    <STATEMENT><PAYMENTITEM>&lt;GROUP GSTGROUP="1_GST" DISPLAYGROUP="2_RETRO">&lt;PAYMENTDETAIL>&lt;PHASE_TYPE>Purchasing&lt;/PHASE_TYPE>&lt;CONTRACT_NUM>3346&lt;/CONTRACT_NUM>&lt;MARK_BLOCK>GA500B-0001&lt;/MARK_BLOCK>&lt;DESTINATION>LC&lt;/DESTINATION>&lt;STRATUM_CODE>18&lt;/STRATUM_CODE>&lt;SPECIES_CODE>SP&lt;/SPECIES_CODE>&lt;UOM_DESC>tonne&lt;/UOM_DESC>&lt;UOM_CODE>MT&lt;/UOM_CODE>&lt;GST_EXEMPT_FLAG>0&lt;/GST_EXEMPT_FLAG>&lt;ACTUAL_RATE>-9.32&lt;/ACTUAL_RATE>&lt;GST_REGISTRANT_NUM>R102090347&lt;/GST_REGISTRANT_NUM>&lt;LOAD_COUNT>1&lt;/LOAD_COUNT>&lt;QUANTITY>28440&lt;/QUANTITY>&lt;VOLUME>36.68&lt;/VOLUME>&lt;EARNINGS>-265.06&lt;/EARNINGS>&lt;/PAYMENTDETAIL>&lt;/GROUP></PAYMENTITEM><PAYMENTITEM>&lt;GROUP GSTGROUP="1_GST" DISPLAYGROUP="4_CNTRPAY">&lt;PAYMENTDETAIL>&lt;PHASE_TYPE>ADV/REC NO CONTRACT&lt;/PHASE_TYPE>&lt;UOM_DESC>flat&lt;/UOM_DESC>&lt;UOM_CODE>FL&lt;/UOM_CODE>&lt;GST_EXEMPT_FLAG>0&lt;/GST_EXEMPT_FLAG>&lt;PAY_DEDUCT_DESC>PAY 12 ADVANCE RECOVERY ES4922&lt;/PAY_DEDUCT_DESC>&lt;ACTUAL_RATE>32644.87&lt;/ACTUAL_RATE>&lt;GST_REGISTRANT_NUM>R123330532&lt;/GST_REGISTRANT_NUM>&lt;EARNINGS>-32644.87&lt;/EARNINGS>&lt;/PAYMENTDETAIL>&lt;PAYMENTDETAIL>&lt;PHASE_TYPE>FIREWOOD/STUMPAGE ALL BLOCKS&lt;/PHASE_TYPE>&lt;UOM_DESC>flat&lt;/UOM_DESC>&lt;UOM_CODE>FL&lt;/UOM_CODE>&lt;GST_EXEMPT_FLAG>0&lt;/GST_EXEMPT_FLAG>&lt;PAY_DEDUCT_DESC>FIREWOOD LOAD # 151819&lt;/PAY_DEDUCT_DESC>&lt;ACTUAL_RATE>25&lt;/ACTUAL_RATE>&lt;GST_REGISTRANT_NUM>R123083735&lt;/GST_REGISTRANT_NUM>&lt;EARNINGS>-25&lt;/EARNINGS>&lt;/PAYMENTDETAIL>&lt;PAYMENTDETAIL>&lt;PHASE_TYPE>SB#2 PAY RD USE&lt;/PHASE_TYPE>&lt;UOM_DESC>flat&lt;/UOM_DESC>&lt;UOM_CODE>FL&lt;/UOM_CODE>&lt;GST_EXEMPT_FLAG>1&lt;/GST_EXEMPT_FLAG>&lt;PAY_DEDUCT_DESC>ROAD USE ES4208 BLOCK 9&lt;/PAY_DEDUCT_DESC>&lt;ACTUAL_RATE>898.1&lt;/ACTUAL_RATE>&lt;EARNINGS>898.1&lt;/EARNINGS>&lt;/PAYMENTDETAIL>&lt;/GROUP></PAYMENTITEM><PAYMENTITEM>&lt;GROUP GSTGROUP="1_GST" DISPLAYGROUP="1_ORIGINAL">&lt;PAYMENTDETAIL>&lt;PHASE_TYPE>Logging&lt;/PHASE_TYPE>&lt;CONTRACT_NUM>2731&lt;/CONTRACT_NUM>&lt;MARK_BLOCK>ES4334-0026&lt;/MARK_BLOCK>&lt;CUT_PERMIT>334&lt;/CUT_PERMIT>&lt;DESTINATION>FED&lt;/DESTINATION>&lt;STRATUM_CODE>01&lt;/STRATUM_CODE>&lt;SPECIES_CODE>FI&lt;/SPECIES_CODE>&lt;UOM_DESC>tonne&lt;/UOM_DESC>&lt;UOM_CODE>MT&lt;/UOM_CODE>&lt;GST_EXEMPT_FLAG>0&lt;/GST_EXEMPT_FLAG>&lt;ACTUAL_RATE>19.5&lt;/ACTUAL_RATE>&lt;GST_REGISTRANT_NUM>R104985114&lt;/GST_REGISTRANT_NUM>&lt;LOAD_COUNT>14&lt;/LOAD_COUNT>&lt;QUANTITY>498300&lt;/QUANTITY>&lt;VOLUME>579.54&lt;/VOLUME>&lt;EARNINGS>9716.85&lt;/EARNINGS>&lt;/PAYMENTDETAIL>&lt;PAYMENTDETAIL>&lt;PHASE_TYPE>Logging&lt;/PHASE_TYPE>&lt;CONTRACT_NUM>2731&lt;/CONTRACT_NUM>&lt;MARK_BLOCK>ES4334-0026&lt;/MARK_BLOCK>&lt;CUT_PERMIT>334&lt;/CUT_PERMIT>&lt;DESTINATION>LC&lt;/DESTINATION>&lt;STRATUM_CODE>06&lt;/STRATUM_CODE>&lt;SPECIES_CODE>FI&lt;/SPECIES_CODE>&lt;UOM_DESC>tonne&lt;/UOM_DESC>&lt;UOM_CODE>MT&lt;/UOM_CODE>&lt;GST_EXEMPT_FLAG>0&lt;/GST_EXEMPT_FLAG>&lt;ACTUAL_RATE>19.5&lt;/ACTUAL_RATE>&lt;GST_REGISTRANT_NUM>R104985114&lt;/GST_REGISTRANT_NUM>&lt;LOAD_COUNT>33&lt;/LOAD_COUNT>&lt;QUANTITY>1096770&lt;/QUANTITY>&lt;VOLUME>1300.24&lt;/VOLUME>&lt;EARNINGS>21387.07&lt;/EARNINGS>&lt;/PAYMENTDETAIL>&lt;PAYMENTDETAIL>&lt;PHASE_TYPE>Logging&lt;/PHASE_TYPE>&lt;CONTRACT_NUM>2731&lt;/CONTRACT_NUM>&lt;MARK_BLOCK>ES4334-0026&lt;/MARK_BLOCK>&lt;CUT_PERMIT>334&lt;/CUT_PERMIT>&lt;DESTINATION>LC&lt;/DESTINATION>&lt;STRATUM_CODE>13&lt;/STRATUM_CODE>&lt;SPECIES_CODE>LO&lt;/SPECIES_CODE>&lt;UOM_DESC>tonne&lt;/UOM_DESC>&lt;UOM_CODE>MT&lt;/UOM_CODE>&lt;GST_EXEMPT_FLAG>0&lt;/GST_EXEMPT_FLAG>&lt;ACTUAL_RATE>19.5&lt;/ACTUAL_RATE>&lt;GST_REGISTRANT_NUM>R104985114&lt;/GST_REGISTRANT_NUM>&lt;LOAD_COUNT>84&lt;/LOAD_COUNT>&lt;QUANTITY>3219510&lt;/QUANTITY>&lt;VOLUME>3990.95&lt;/VOLUME>&lt;EARNINGS>62780.68&lt;/EARNINGS>&lt;/PAYMENTDETAIL>&lt;PAYMENTDETAIL>&lt;PHASE_TYPE>Logging&lt;/PHASE_TYPE>&lt;CONTRACT_NUM>2731&lt;/CONTRACT_NUM>&lt;MARK_BLOCK>ES4334-0026&lt;/MARK_BLOCK>&lt;CUT_PERMIT>334&lt;/CUT_PERMIT>&lt;DESTINATION>LC&lt;/DESTINATION>&lt;STRATUM_CODE>21&lt;/STRATUM_CODE>&lt;SPECIES_CODE>MX&lt;/SPECIES_CODE>&lt;UOM_DESC>tonne&lt;/UOM_DESC>&lt;UOM_CODE>MT&lt;/UOM_CODE>&lt;GST_EXEMPT_FLAG>0&lt;/GST_EXEMPT_FLAG>&lt;ACTUAL_RATE>19.5&lt;/ACTUAL_RATE>&lt;GST_REGISTRANT_NUM>R104985114&lt;/GST_REGISTRANT_NUM>&lt;LOAD_COUNT>2&lt;/LOAD_COUNT>&lt;QUANTITY>71030&lt;/QUANTITY>&lt;VOLUME>91.4&lt;/VOLUME>&lt;EARNINGS>1385.09&lt;/EARNINGS>&lt;/PAYMENTDETAIL>&lt;PAYMENTDETAIL>&lt;PHASE_TYPE>Logging&lt;/PHASE_TYPE>&lt;CONTRACT_NUM>2731&lt;/CONTRACT_NUM>&lt;MARK_BLOCK>ES4334-0026&lt;/MARK_BLOCK>&lt;CUT_PERMIT>334&lt;/CUT_PERMIT>&lt;DESTINATION>PUL&lt;/DESTINATION>&lt;STRATUM_CODE>16&lt;/STRATUM_CODE>&lt;SPECIES_CODE>LO&lt;/SPECIES_CODE>&lt;UOM_DESC>tonne&lt;/UOM_DESC>&lt;UOM_CODE>MT&lt;/UOM_CODE>&lt;GST_EXEMPT_FLAG>0&lt;/GST_EXEMPT_FLAG>&lt;ACTUAL_RATE>18&lt;/ACTUAL_RATE>&lt;GST_REGISTRANT_NUM>R104985114&lt;/GST_REGISTRANT_NUM>&lt;LOAD_COUNT>3&lt;/LOAD_COUNT>&lt;QUANTITY>104980&lt;/QUANTITY>&lt;VOLUME>173.46&lt;/VOLUME>&lt;EARNINGS>1889.64&lt;/EARNINGS>&lt;/PAYMENTDETAIL>&lt;PAYMENTDETAIL>&lt;PHASE_TYPE>Logging&lt;/PHASE_TYPE>&lt;CONTRACT_NUM>2731&lt;/CONTRACT_NUM>&lt;MARK_BLOCK>ES4334-0030&lt;/MARK_BLOCK>&lt;CUT_PERMIT>334&lt;/CUT_PERMIT>&lt;DESTINATION>LC&lt;/DESTINATION>&lt;STRATUM_CODE>06&lt;/STRATUM_CODE>&lt;SPECIES_CODE>FI&lt;/SPECIES_CODE>&lt;UOM_DESC>tonne&lt;/UOM_DESC>&lt;UOM_CODE>MT&lt;/UOM_CODE>&lt;GST_EXEMPT_FLAG>0&lt;/GST_EXEMPT_FLAG>&lt;ACTUAL_RATE>19.5&lt;/ACTUAL_RATE>&lt;GST_REGISTRANT_NUM>R104985114&lt;/GST_REGISTRANT_NUM>&lt;LOAD_COUNT>15&lt;/LOAD_COUNT>&lt;QUANTITY>514800&lt;/QUANTITY>&lt;VOLUME>610.27&lt;/VOLUME>&lt;EARNINGS>10038.64&lt;/EARNINGS>&lt;/PAYMENTDETAIL>&lt;PAYMENTDETAIL>&lt;PHASE_TYPE>Logging&lt;/PHASE_TYPE>&lt;CONTRACT_NUM>2731&lt;/CONTRACT_NUM>&lt;MARK_BLOCK>ES4334-0030&lt;/MARK_BLOCK>&lt;CUT_PERMIT>334&lt;/CUT_PERMIT>&lt;DESTINATION>LC&lt;/DESTINATION>&lt;STRATUM_CODE>18&lt;/STRATUM_CODE>&lt;SPECIES_CODE>SP&lt;/SPECIES_CODE>&lt;UOM_DESC>tonne&lt;/UOM_DESC>&lt;UOM_CODE>MT&lt;/UOM_CODE>&lt;GST_EXEMPT_FLAG>0&lt;/GST_EXEMPT_FLAG>&lt;ACTUAL_RATE>19.5&lt;/ACTUAL_RATE>&lt;GST_REGISTRANT_NUM>R104985114&lt;/GST_REGISTRANT_NUM>&lt;LOAD_COUNT>1&lt;/LOAD_COUNT>&lt;QUANTITY>35740&lt;/QUANTITY>&lt;VOLUME>46.43&lt;/VOLUME>&lt;EARNINGS>696.93&lt;/EARNINGS>&lt;/PAYMENTDETAIL>&lt;PAYMENTDETAIL>&lt;PHASE_TYPE>Logging&lt;/PHASE_TYPE>&lt;CONTRACT_NUM>2731&lt;/CONTRACT_NUM>&lt;MARK_BLOCK>ES4334-0030&lt;/MARK_BLOCK>&lt;CUT_PERMIT>334&lt;/CUT_PERMIT>&lt;DESTINATION>PUL&lt;/DESTINATION>&lt;STRATUM_CODE>16&lt;/STRATUM_CODE>&lt;SPECIES_CODE>LO&lt;/SPECIES_CODE>&lt;UOM_DESC>tonne&lt;/UOM_DESC>&lt;UOM_CODE>MT&lt;/UOM_CODE>&lt;GST_EXEMPT_FLAG>0&lt;/GST_EXEMPT_FLAG>&lt;ACTUAL_RATE>18&lt;/ACTUAL_RATE>&lt;GST_REGISTRANT_NUM>R104985114&lt;/GST_REGISTRANT_NUM>&lt;LOAD_COUNT>3&lt;/LOAD_COUNT>&lt;QUANTITY>100280&lt;/QUANTITY>&lt;VOLUME>165.68&lt;/VOLUME>&lt;EARNINGS>1805.04&lt;/EARNINGS>&lt;/PAYMENTDETAIL>&lt;PAYMENTDETAIL>&lt;PHASE_TYPE>Logging&lt;/PHASE_TYPE>&lt;CONTRACT_NUM>3350&lt;/CONTRACT_NUM>&lt;MARK_BLOCK>ES4922-0026&lt;/MARK_BLOCK>&lt;CUT_PERMIT>922&lt;/CUT_PERMIT>&lt;DESTINATION>LC&lt;/DESTINATION>&lt;STRATUM_CODE>06&lt;/STRATUM_CODE>&lt;SPECIES_CODE>FI&lt;/SPECIES_CODE>&lt;UOM_DESC>tonne&lt;/UOM_DESC>&lt;UOM_CODE>MT&lt;/UOM_CODE>&lt;GST_EXEMPT_FLAG>0&lt;/GST_EXEMPT_FLAG>&lt;ACTUAL_RATE>37&lt;/ACTUAL_RATE>&lt;GST_REGISTRANT_NUM>R123330532&lt;/GST_REGISTRANT_NUM>&lt;LOAD_COUNT>5&lt;/LOAD_COUNT>&lt;QUANTITY>197320&lt;/QUANTITY>&lt;VOLUME>233.92&lt;/VOLUME>&lt;EARNINGS>7300.84&lt;/EARNINGS>&lt;/PAYMENTDETAIL>&lt;PAYMENTDETAIL>&lt;PHASE_TYPE>Logging&lt;/PHASE_TYPE>&lt;CONTRACT_NUM>3350&lt;/CONTRACT_NUM>&lt;MARK_BLOCK>ES4922-0027&lt;/MARK_BLOCK>&lt;CUT_PERMIT>922&lt;/CUT_PERMIT>&lt;DESTINATION>LC&lt;/DESTINATION>&lt;STRATUM_CODE>21&lt;/STRATUM_CODE>&lt;SPECIES_CODE>MX&lt;/SPECIES_CODE>&lt;UOM_DESC>tonne&lt;/UOM_DESC>&lt;UOM_CODE>MT&lt;/UOM_CODE>&lt;GST_EXEMPT_FLAG>0&lt;/GST_EXEMPT_FLAG>&lt;ACTUAL_RATE>37&lt;/ACTUAL_RATE>&lt;GST_REGISTRANT_NUM>R123330532&lt;/GST_REGISTRANT_NUM>&lt;LOAD_COUNT>1&lt;/LOAD_COUNT>&lt;QUANTITY>38920&lt;/QUANTITY>&lt;VOLUME>50.08&lt;/VOLUME>&lt;EARNINGS>1440.04&lt;/EARNINGS>&lt;/PAYMENTDETAIL>&lt;

    Sorry I guess I haven't explained very well. When I am issuing the SELECT statement which uses XMLElement I have to convert output to string in order to have a column alais PAYMENTITEM. It is then not reconnized as XML in the
    xsql:query call
    If I do not assign a alias to query I get following error
    oracle.xml.sql.OracleXMLSQLException: Character ',' is not allowed in an XML tag
    If I assign without using getClobVal() I get this error
    oracle.xml.sql.OracleXMLSQLException: Conversion to String failed
    If I then use the getClobVal() to assign column alias it appears as if entire result set is now a string then <> tag delimiters are now show with "&lt" signs instead.

  • Object types return hex characters with xsql:query

    How do I use xsql servlet to return an object which contains street address etc. as a character string and not a hexadecimal string. If I use the following ddl and implement the following xsql, I get the following results.
    CREATE TYPE address_objtyp AS object
    (street VARCHAR(30),city VARCHAR(30),state VARCHAR(2));
    CREATE SEQUENCE employees_seq START WITH 105 INCREMENT BY 1;
    CREATE TABLE employees(
    id NUMBER(4) CONSTRAINT emp_pkId PRIMARY KEY,
    first_name VARCHAR(30),
    last_name VARCHAR(30),
    address address_objtyp);
    INSERT INTO employees VALUES (
    103, 'Fred', 'Couples',
    address_objtyp('9201 Park St', 'Alexandria', 'VA'));
    <?xml version="1.0"?>
    <xsql:query null-indicator="yes" connection="demo"
    allow-client-style="yes" xmlns:xsql="urn:oracle-xsql">
    select * from employees
    </xsql:query>
    <?xml version="1.0" ?>
    - <ROWSET xsql-timing="20">
    - <ROW num="1">
    <ID>103</ID>
    <FIRST_NAME>Fred</FIRST_NAME>
    <LAST_NAME>Couples</LAST_NAME>
    - <ADDRESS>
    <STREET>0x39323031205061726B205374</STREET>
    <CITY>0x416C6578616E64726961</CITY>
    <STATE>0x5641</STATE>
    </ADDRESS>
    </ROW>
    </ROWSET>
    I'm using the most recent jdbc thin driver (ojdbc14.jar) that is for jdk 1.4. I'm using a 9.0.1 db, and I'm using xdk for java 9.2.0.3. So I thought that the thin driver is not capable, so I tried the oci driver, and find another set of problems.
    I get the following error:
    Oracle XDK Java 9.2.0.3.0 Production
    XSQL-017: Unexpected Error Occurred
    java.lang.UnsatisfiedLinkError: no ocijdbc8 in java.library.path
    Now why does XDK insist to look for ocijdbc8 if I only have ocijdbc9.dll installed on my client? The config file only allows oci8 in the dburl specification, which is probably why XDK insists to look for ocijdbc8, but I CANNOT specify oci9, which would make sense to me, although it's most likely not a valid specification.
    <connection name="9ic">
    <username>scott</username>
    <password>tiger</password>
    <dburl>jdbc:oracle:oci8:@</dburl>
    <driver>oracle.jdbc.OracleDriver</driver>
    <autocommit>true</autocommit>
    </connection>
    And lastly documentation that comes with ojdbc14.jar indicates to now use a different specification for the jdbc thin driver. Instead of the usual
    <dburl>jdbc:oracle:thin:@host:port:sid</dburl>
    it recommends
    <dburl>jdbc:oracle:thin:@//host:port/service</dburl>
    however this does not work with XDK 9.2.0.3. Any ideas why not?
    By the way if I use SQL*Plus and select * from employees, I get the desired result in SQL*Plus, which suggests to me that I DO need the oci driver for XSQL Servlet. So how do I get XSQL Servlet 9.2.0.3 to use the oci 9 driver. I know how to set wrapper.path in the servlet config file to find ocijdbc9.dll, but XSQL Servlet still wants to find ocijdbc8.
    I sense that there is a bug hidden somewhere in the XDK kit.
    Steve.

    How do I use xsql servlet to return an object which contains street address etc. as a character string and not a hexadecimal string. If I use the following ddl and implement the following xsql, I get the following results.
    CREATE TYPE address_objtyp AS object
    (street VARCHAR(30),city VARCHAR(30),state VARCHAR(2));
    CREATE SEQUENCE employees_seq START WITH 105 INCREMENT BY 1;
    CREATE TABLE employees(
    id NUMBER(4) CONSTRAINT emp_pkId PRIMARY KEY,
    first_name VARCHAR(30),
    last_name VARCHAR(30),
    address address_objtyp);
    INSERT INTO employees VALUES (
    103, 'Fred', 'Couples',
    address_objtyp('9201 Park St', 'Alexandria', 'VA'));
    <?xml version="1.0"?>
    <xsql:query null-indicator="yes" connection="demo"
    allow-client-style="yes" xmlns:xsql="urn:oracle-xsql">
    select * from employees
    </xsql:query>
    <?xml version="1.0" ?>
    - <ROWSET xsql-timing="20">
    - <ROW num="1">
    <ID>103</ID>
    <FIRST_NAME>Fred</FIRST_NAME>
    <LAST_NAME>Couples</LAST_NAME>
    - <ADDRESS>
    <STREET>0x39323031205061726B205374</STREET>
    <CITY>0x416C6578616E64726961</CITY>
    <STATE>0x5641</STATE>
    </ADDRESS>
    </ROW>
    </ROWSET>
    I'm using the most recent jdbc thin driver (ojdbc14.jar) that is for jdk 1.4. I'm using a 9.0.1 db, and I'm using xdk for java 9.2.0.3. So I thought that the thin driver is not capable, so I tried the oci driver, and find another set of problems.
    I get the following error:
    Oracle XDK Java 9.2.0.3.0 Production
    XSQL-017: Unexpected Error Occurred
    java.lang.UnsatisfiedLinkError: no ocijdbc8 in java.library.path
    Now why does XDK insist to look for ocijdbc8 if I only have ocijdbc9.dll installed on my client? The config file only allows oci8 in the dburl specification, which is probably why XDK insists to look for ocijdbc8, but I CANNOT specify oci9, which would make sense to me, although it's most likely not a valid specification.
    <connection name="9ic">
    <username>scott</username>
    <password>tiger</password>
    <dburl>jdbc:oracle:oci8:@</dburl>
    <driver>oracle.jdbc.OracleDriver</driver>
    <autocommit>true</autocommit>
    </connection>
    And lastly documentation that comes with ojdbc14.jar indicates to now use a different specification for the jdbc thin driver. Instead of the usual
    <dburl>jdbc:oracle:thin:@host:port:sid</dburl>
    it recommends
    <dburl>jdbc:oracle:thin:@//host:port/service</dburl>
    however this does not work with XDK 9.2.0.3. Any ideas why not?
    By the way if I use SQL*Plus and select * from employees, I get the desired result in SQL*Plus, which suggests to me that I DO need the oci driver for XSQL Servlet. So how do I get XSQL Servlet 9.2.0.3 to use the oci 9 driver. I know how to set wrapper.path in the servlet config file to find ocijdbc9.dll, but XSQL Servlet still wants to find ocijdbc8.
    I sense that there is a bug hidden somewhere in the XDK kit.
    Steve.

  • xsql:query - Is there a character limit on the SQL contained in the tag?

    Is there a limit to the length of the SQL contained in the
    <xsql:query> tag ?
    I've been very successful with short queries using xsql:query
    tags, however, for longer queries they seem to fail the XML
    Syntax check using JDeveloper 3.2.3.
    The resulting error from the XSQLServlet is XSQL-005 page is not
    well formed with the following:
    XML-0201: (Fatal Error) Expected name instead of .
    XML-0122: (Fatal Error) '=' missing in attribute.
    XML-0125: (Fatal Error) Attribute value should start with quote
    (Posted example 10/16/01)

    Hello Bill,
    >> … to our apex environment (9.2)
    The following might give you some more information on your possible situation -
    Re: Is there a maximum number of characters allowed in PL/SQL Anonymous Blo
    ORA-06550 recieved when trying to modify existing page after 3.1 Apex upg
    Regards,
    Arie.

  • xsql:include-xml

    if the href for the <xsql:include-xml> call doesn't return any results or returns null you get an xsql error. Is there a workaround?
    for example:
    <xsql:include-xml id="0">
    select xmltype.getclobval(doc) from tbl_test where id = {@id}
    </xsql:include-xml>
    if doc is null or the resultset is empty then you get <xsql-error action="xsql:include-xml" />.

    Include a <xsql:no-rows-query> element.
    <xsql:include-xml href="">
    Select xmltype.getClobVal
    <xsql:no-rows-query>
    Select Statement to use if include-xml returns null.
    </xsql:no-rows-query>
    </xsql:include-xml>

  • XSQL Query and Oracle 9i

    <?xml version="1.0"?>
    <Antraege connection="xmldemo9i" xmlns:xsql="urn:oracle-xsql">
    <Antragsteller>
    <xsql:query tag-case="lower" rowset-element="" row-element="antragsteller">
    select * FROM v_betriebsdaten
    WHERE betr_id='{@betr_id}'
    </xsql:query>
    </Antragsteller>
    </Antraege>
    This is the File *.xqsl which makes problems.
    When I use a connection to our 8i database it works correctly.
    In use with our 9i database I get the following error:
    ORA-00600: Interner Fehlercode, Argumente: [ttcgcshnd-1], [0], [], [], [], [], [], []
    If I use the SQL select statement in SQLPlus on the 9i db I get the correct result.
    Thanks for your adwise

    If I try your solution I got the message "There is no value for all variables"
    But it seems the problem must be another.
    When I hardcode the value for betr_id as you will see after I got the same error messsage as I described.
    <?xml version="1.0"?>
    <Antraege connection="xmldemo9i" bind-params="betr_id" xmlns:xsql="urn:oracle-xsql">
    <Antragsteller>
    <xsql:query tag-case="lower" rowset-element="" row-element="antragsteller">
    select * FROM v_betriebsdaten
    WHERE betr_id=727709
    </xsql:query>
    </Antragsteller>
    </Antraege>
    And the error
    ORA-00600: Interner Fehlercode, Argumente: [ttcgcshnd-1], [0], [], [], [], [], [], []</
    If I connect with a 8i DB all works correct

  • XML errors when running specific reports in SCCM 2012, using SQL Server 2008 R2 Reporting Services

    I've posted this to the SCCM 2012 forum and only received one response so far that states that this is a known issue that has been discussed before and isn't easy to fix;  I was not given any actual solution either.  Since this involves SSRS I
    thought I would try my luck here as well.  
    I'm having almost exactly the same problem as is referenced in this article:  http://social.msdn.microsoft.com/Forums/uk/sqlreportingservices/thread/587a3319-bc54-4d30-bb3f-bb90a0c6ec50.  When
    I try to run either of these reports (Computers with specific software registered in Add Remove Programs; Count of instances of specific software registered with Add or Remove Programs) I receive the XML error shown in the attached screenshot.  I'm fairly
    sure the problem is the same as the other admin was experiencing and I just need to remove the unprintable characters (of the application name) from the dbo.v_Add_Remove_Program column.    
    The error references 0xFFFF but I could not find what that exactly translates too, other than it appears to be at the end of the spectrum for Unicode characters.  I used the following sql query to search for the 0xFFFF entry, but no results were found:
    use CM_UV2
    Select distinct
     CHARINDEX(cast(0xFFFF as varchar(1)),DisplayName0),
     DisplayName0
    from
     dbo.v_Add_Remove_Programs
    Where
     CHARINDEX(cast(0xFFFF as varchar(1)),DisplayName0) > 0
    When I used the original hex value of 0x28 I get plenty of results returned with "(" in them so the query seems sound.  One of the articles I was searching mentioned running the query manually using the Management Studio and looking for strange characters
    there but I'm not sure how to do that. 
    Basically I just need help finding the offending character and removing it.  I also need to be able to replicate this for other strings as this looks like an error that will reoccur whenever any new software appears that has weird encoding in the title. 
    Thank you in advance for any help given.
    Über Random

    Hi Uber,
    This is a known issue that error occurs when running report "Count of instances of specific software registered with Add or Remove Programs" due to non-printable characters for XML. Based on internal research, the hotfix for this issue will be
    included in the System Center 2012 Configuration Manager Service Pack 1.
    As a workaround, you can remove the nonprintable character populated into the report parameter by referring to the following KB article:
    http://support.microsoft.com/KB/914159
    Hope this helps.
    Regards,
    Mike Yin
    Mike Yin
    TechNet Community Support

  • XSQL-017: Unexpected Error Occurred with fo:list-block

    I will create a list in a pdf-file. I'm using:
    <fo:list-block>
    <fo:list-item>
    <fo:list-item-label>
    <fo:block>&bull;</fo:block>
    </fo:list-item-label>
    <fo:list-item-body>
    <xsl:apply-templates select="PARAGRAPH"/>
    </fo:list-item-body>
    </fo:list-item>
    </fo:list-block>
    This makes following error:
    Oracle XSQL Servlet Page Processor 9.0.2.0.0 (Beta)
    XSQL-017: Unexpected Error Occurred
    java.lang.RuntimeException: java.lang.NullPointerException
    at oracle.xml.xsql.serializers.XSQLFOPSerializer.serialize(XSQLFOPSerializer.java:80)
    at oracle.xml.xsql.XSQLPageProcessor.process(XSQLPageProcessor.java:273)
    at oracle.xml.xsql.XSQLServlet.doGet(XSQLServlet.java:60)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at org.apache.tomcat.core.ServletWrapper.doService(ServletWrapper.java:405)
    at org.apache.tomcat.core.Handler.service(Handler.java:287)
    at org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java:372)
    at org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:797)
    at org.apache.tomcat.core.ContextManager.service(ContextManager.java:743)
    at org.apache.tomcat.service.connector.Ajp13ConnectionHandler.processConnection(Ajp13ConnectionHandler.java:160)
    at org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java:416)
    at org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java:501)
    at java.lang.Thread.run(Thread.java:484)
    If I create the list without the xsl:apply-templates, works it fine.
    If I only use the xsl:apply-templates without fo:list, works it fine.
    Is this a bug in the servlet?

    Forget about it. I found the error: I forgot to use the fo:block tag surrounding the xsl:apply-templates-tag.
    Sorry!

  • Problem with xsql:query

    Hi,
    I'm having a problem with the following simple XSQL document:
    <?xml version="1.0"?>
    <xsql:query connection="xsqltest" xmlns:xsql="urn:oracle-xsql">
    SELECT concat(concat(forename, ' '), surname) AS Name
    , d.name AS Department
    FROM emp, dept d
    WHERE emp.dept_no = d.id
    ORDER BY surname
    </xsql:query>When I transform this using the command line xsql, it produces the following (as expected):
    <?xml version = '1.0'?>
    <ROWSET>
    <ROW num="1">
    <Name>Cindy Delight</Name>
    <Department>Accounting</Department>
    </ROW>
    <ROW num="2">
    <Name>Adrian Rue</Name>
    <Department>Product Development</Department>
    </ROW>
    <ROW num="3">
    <Name>Dwight Dweeb</Name>
    <Department>Accounting</Department>
    </ROW>
    </ROWSET>However, when I access the same page through my browser, the output is:
    <?xml version = '1.0'?>
    <xsql:query>
    SELECT concat(concat(forename, ' '), surname) AS Name
    , d.name AS Department
    FROM emp, dept d
    WHERE emp.dept_no = d.id
    ORDER BY surname
    </xsql:query>(this is the same as the input document, except the namespace declaration has been stripped out, making the XML invalid).
    I've tried including other xsql tags in the same document (e.g. xsql:include-xsql), these seem to work fine. Also, if I change the connect details, XSQL fails as expected, so it would appear xsql is being invoked by Tomcat (.xsql is mapped to the servlet), and XSQL successfully connecting to the database.
    My setup is slightly unusual: I'm trying to use XSQL 1.0.4.1 with MySQL 3.23.32 using the mm.mysql 2.0.4 JDBC drivers. This is running on Tomcat 3.2.1 with JDK 1.3 (OJVM 1.2.330). But, since it works with the command line xsql, I'm at a loss as to why it's misbehaving through the servlet engine only... any ideas?
    Steve

    Hmm,
    Even more confusing - the same .xsql document works fine with WebToGo - so I guess this is a Tomcat problem, somehow... Just can't understand why xsql:include-xsql works and xsql:query doesn't.
    Steve

  • Problem inserting and querying XML data with a recursive XML schema

    Hello,
    I'm facing a problem with querying XML data that is valid against a recursive XML Schema. I have got a table category that stores data as binary XML using Oracle 11g Rel 2 on Windows XP. The XML Schema is the following:
    <?xml version="1.0" encoding="UTF-8"?>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:complexType name="bold_type" mixed="true">
              <xs:choice minOccurs="0" maxOccurs="unbounded">
                   <xs:element name="bold" type="bold_type"/>
                   <xs:element name="keyword" type="keyword_type"/>
                   <xs:element name="emph" type="emph_type"/>
              </xs:choice>
         </xs:complexType>
         <xs:complexType name="keyword_type" mixed="true">
              <xs:choice minOccurs="0" maxOccurs="unbounded">
                   <xs:element name="bold" type="bold_type"/>
                   <xs:element name="keyword" type="keyword_type"/>
                   <xs:element name="emph" type="emph_type"/>
                   <xs:element name="plain_text" type="xs:string"/>
              </xs:choice>
         </xs:complexType>
         <xs:complexType name="emph_type" mixed="true">
              <xs:choice minOccurs="0" maxOccurs="unbounded">
                   <xs:element name="bold" type="bold_type"/>
                   <xs:element name="keyword" type="keyword_type"/>
                   <xs:element name="emph" type="emph_type"/>
              </xs:choice>
         </xs:complexType>
         <xs:complexType name="text_type" mixed="true">
              <xs:choice minOccurs="0" maxOccurs="unbounded">
                   <xs:element name="bold" type="bold_type"/>
                   <xs:element name="keyword" type="keyword_type"/>
                   <xs:element name="emph" type="emph_type"/>
              </xs:choice>
         </xs:complexType>
         <xs:complexType name="parlist_type">
              <xs:sequence>
                   <xs:element name="listitem" minOccurs="0" maxOccurs="unbounded" type="listitem_type"/>
              </xs:sequence>
         </xs:complexType>
         <xs:complexType name="listitem_type">
              <xs:choice minOccurs="0" maxOccurs="unbounded">
                   <xs:element name="parlist" type="parlist_type"/>
                   <xs:element name="text" type="text_type"/>
              </xs:choice>
         </xs:complexType>
         <xs:element name="category">
              <xs:complexType>
                   <xs:sequence>
                        <xs:element name="name"/>
                        <xs:element name="description">
                                  <xs:complexType>
                                            <xs:choice>
                                                           <xs:element name="text" type="text_type"/>
                                                           <xs:element name="parlist" type="parlist_type"/>
                                            </xs:choice>
                                  </xs:complexType>
                        </xs:element>
                                                                </xs:sequence>
                                                                <xs:attribute name="id"/>
                                            </xs:complexType>
                        </xs:element>
    </xs:schema>I registered this schema and created the category table. Then I inserted a new row using the code below:
    insert into category_a values
    (XMlElement("category",
          xmlattributes('categoryAAA' as "id"),
          xmlforest ('ma categ' as "name"),
          (xmlelement("description", (xmlelement("text", 'find doors blest now whiles favours carriage tailor spacious senses defect threat ope willow please exeunt truest assembly <keyword> staring travels <bold> balthasar parts attach </bold> enshelter two <emph> inconsiderate ways preventions </emph> preventions clasps better affections comes perish </keyword> lucretia permit street full meddle yond general nature whipp <emph> lowness </emph> grievous pedro')))    
    The row is successfully inserted as witnessed by the results of row counting. However, I cannot extract data from the table. First, I tried using SqlPlus* which hangs up and quits after a while. I then tried to use SQL Developer, but haven't got any result. Here follow some examples of queries and their results in SQL Developer:
    Query 1
    select * from category
    Result : the whole row is returned
    Query 2
    select xmlquery('$p/category/description' passing object_value as "p" returning content) from category
    Result: "SYS.XMLTYPE"
    now I tried to fully respect the nested structure of description element in order to extract the text portion of <bold> using this query
    Query 3
    select  xmlquery('$p/category/description/text/keyword/bold/text()' passing object_value as "p" returning content) from  category_a
    Result: null
    and also tried to extract the text portion of element <text> using this query
    Query 4
    select  xmlquery('$p/category/description/text/text()' passing object_value as "p" returning content) from  category_a
    Result: "SYS.XMLTYPE".
    On the other hand, I noticed, from the result of query 1, that the opening tags of elements keyword and bold are encoded as the less than operator "&lt;". This explains why query 3 returns NULL. However, query 4 should display the text content of <text>, which is not the case.
    My questions are about
    1. How to properly insert the XML data while preserving the tags (especially the opening tag).
    2. How to display the data (the text portion of the main Element or of the nested elements).
    The problem about question 1 is that it is quite unfeasible to write a unique insert statement because the structure of <description> is recursive. In other words, if the structure of <description> was not recursive, it would be possible to embed the elements using the xmlelement function during the insertion.
    In fact, I need to insert the content of <description> from a source table (called category_a) into a target table (+category_b+) automatically .
    I filled category_a using the Saxloader utility from an flat XML file that I have generated from a benchmark. The content of <description> is different from one row to another but it is always valid with regards to the XML Schema. The data is properly inserted as witnessed by the "select * from category_a" instruction (500 row inserted). Besides, the opening tags of the nested elements under <description> are preserved (no "&lt;"). Then I wrote a PL/SQL procedure in which a cursor extracts the category id and category name into varchar2 variables and description into an XMLtype variable from category_a. When I try to insert the values into a category_b, I get the follwing error:
    LSX-00213: only 0 occurrences of particle "text", minimum is 1which tells that the <text> element is absent (actually it is present in the source table).
    So, my third question is why are not the tags recognized during the insertion?
    Can anyone help please?

    Hello,
    indded, I was using an old version of Sqlplus* (8.0.60.0.0) because I had a previous installation (oracle 10g XE). Instead, I used the Sqlplus* shipped with the 11g2database (version 11.2.0.1.0). All the queries that I wrote work fine and display the data correctly.
    I also used the XMLSERIALIZE function and can now display the description content in SQL Developer.
    Thank you very much.
    To answer your question Marco, I registered the XML Schema using the following code
    declare
      doc varchar2(4000) := '<?xml version="1.0" encoding="UTF-8"?>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:complexType name="bold_type" mixed="true">
              <xs:choice minOccurs="0" maxOccurs="unbounded">
                   <xs:element name="bold" type="bold_type"/>
                   <xs:element name="keyword" type="keyword_type"/>
                   <xs:element name="emph" type="emph_type"/>
              </xs:choice>
         </xs:complexType>
         <xs:complexType name="keyword_type" mixed="true">
              <xs:choice minOccurs="0" maxOccurs="unbounded">
                   <xs:element name="bold" type="bold_type"/>
                   <xs:element name="keyword" type="keyword_type"/>
                   <xs:element name="emph" type="emph_type"/>
                   <xs:element name="plain_text" type="xs:string"/>
              </xs:choice>
         </xs:complexType>
         <xs:complexType name="emph_type" mixed="true">
              <xs:choice minOccurs="0" maxOccurs="unbounded">
                   <xs:element name="bold" type="bold_type"/>
                   <xs:element name="keyword" type="keyword_type"/>
                   <xs:element name="emph" type="emph_type"/>
              </xs:choice>
         </xs:complexType>
         <xs:complexType name="text_type" mixed="true">
              <xs:choice minOccurs="0" maxOccurs="unbounded">
                   <xs:element name="bold" type="bold_type"/>
                   <xs:element name="keyword" type="keyword_type"/>
                   <xs:element name="emph" type="emph_type"/>
              </xs:choice>
         </xs:complexType>
         <xs:complexType name="parlist_type">
              <xs:sequence>
                   <xs:element name="listitem" minOccurs="0" maxOccurs="unbounded" type="listitem_type"/>
              </xs:sequence>
         </xs:complexType>
         <xs:complexType name="listitem_type">
              <xs:choice minOccurs="0" maxOccurs="unbounded">
                   <xs:element name="parlist" type="parlist_type"/>
                   <xs:element name="text" type="text_type"/>
              </xs:choice>
         </xs:complexType>
         <xs:element name="category">
              <xs:complexType>
                   <xs:sequence>
                        <xs:element name="name"/>
                        <xs:element name="description">
                                  <xs:complexType>
                                            <xs:choice>
                                                           <xs:element name="text" type="text_type"/>
                                                           <xs:element name="parlist" type="parlist_type"/>
                                            </xs:choice>
                                  </xs:complexType>
                        </xs:element>
                                                                </xs:sequence>
                                                                <xs:attribute name="id"/>
                                            </xs:complexType>
                        </xs:element>
    </xs:schema>';
    begin
      dbms_xmlschema.registerSchema('/xmldb/category_auction.xsd', doc,     LOCAL      => FALSE, 
            GENTYPES   => FALSE,  GENBEAN    => FALSE,   GENTABLES  => FALSE,
             FORCE      => FALSE,
             OPTIONS    => DBMS_XMLSCHEMA.REGISTER_BINARYXML,
             OWNER      => USER);
    end;then, I created the Category table as follows:
    CREATE TABLE category_a of XMLType XMLTYPE store AS BINARY XML
        XMLSCHEMA "xmldb/category_auction.xsd" ELEMENT "category";Now, there still remains a problem of how to insert the "description" content which I serialized as a CLOB data into another table as XML. To this purpose, I wrote a view over the Category_a table as follows:
    CREATE OR REPLACE FORCE VIEW "AUCTION_XWH"."CATEGORY_V" ("CATEGORY_ID", "CNAME", "DESCRIPTION") AS
      select category_v."CATEGORY_ID",category_v."CNAME",
      XMLSerialize(content ( xmlquery('$p/category/description/*' passing object_value as "p" returning content)) as clob) as "DESCRIPTION"
      from  auction.category_a p, 
    xmltable ('$a/category' passing p.Object_Value as "a"
    columns  category_id varchar2(15) path '@id',
              cname varchar2(20) path 'name') category_v;Then, I wrote a procedure to insert data into the Category_xwh table (the source and target tables are slightly different: the common elements are just copied wereas new elements are created in the target table). The code of the procedure is the following:
    create or replace PROCEDURE I_CATEGORY AS
    v_cname VARCHAR2(30);
    v_description clob ;
    v_category_id VARCHAR2(15);
    cursor mycursor is select category_id, cname, description from category_v;
    BEGIN
    open mycursor;
      loop
      /*retrieving the columns*/
      fetch mycursor into v_category_id, v_cname, v_description ;
      exit when mycursor%notfound;
      insert into category_xwh values
      (XMlElement("category",
          xmlattributes(v_category_id as "category_id"),
          xmlelement("Hierarchies", xmlelement("ObjHierarchy", xmlelement ("H_Cat"),
                                                               xmlelement ("Rollsup",
                                                                                  (xmlelement("all_categories",
                                                                                   xmlattributes('allcategories' as "all_category_id")))
        xmlforest (
                  v_cname as "cat_name",
                  v_description as "description")    
    end loop;
      commit;
      close mycursor;
    END I_CATEGORY;When I execute the procedure, I get the following error:
    LSX-00201: contents of "description" should be elements onlyso, I just wonder if this is because v_description is considered as plain text and not as XML text, even if its content is XML. Do I need to use a special function to cast the CLOB as XML?
    Thanks for your help.
    Doulkifli

  • Lower case tag names in XSQL query

    XSQL queries appear to default all column tag names to upper case, even when you specifically use lower case characters. Is there any way to get them into lower case?
    For example,
    <?xml version="1.0"?>
    <test connection="devel" xmlns:xsql="urn:oracle-xsql">
    <xsql:query rowset-element="" row-element="" null-indicator="yes">
    select 'hello' as hi from dual
    </xsql:query>
    </test>
    Results in,
    <?xml version="1.0" ?>
    <test>
    <HI>hello</HI>
    </test>
    I would really like to get <HI> to <hi>...
    thanks.

    You can also preserve case by putting quotes around the column alias:
    For example,
    <?xml version="1.0"?>
    <test connection="devel" xmlns:xsql="urn:oracle-xsql">
    <xsql:query rowset-element="" row-element="" null-indicator="yes">
    select 'hello' as "hi"
    , 'Hello' as "Hi"
    , 'HELLO' as "HI"
    from dual
    </xsql:query>
    </test>
    This way you can also get mixed case.

  • FODC0002 [{bea-err}FODC0002a]: Error parsing input XML: Error at line:2 col

    I have an ODSI Physical Service that is based on a Java Function. The Java Function builds a SQL statement and uses JDBC to query for a ResultSet. One of the columns that is queried is a Clob. Sometimes, the data in this column causes an XMLBeans validation exception in ODSI: {err}XQ0027: Validation failed: error: decimal: Invalid decimal value: unexpected char '114'
    The issue is not consistently replicable with particular database record, the database records that present this issue at one point in time will be resolved after a restart of ODSI and replaced by another list of records that present the same error.
    As can be seen from the stack trace, it looks like the issue is happening after the database query has returned and while the process is assembling the SOAP response.
    Error at line:2 col:481 Line:2 '=' expected, got char[99]
    at weblogic.xml.babel.scanner.ScannerState.expect(ScannerState.java:241)
    at weblogic.xml.babel.scanner.OpenTag.read(OpenTag.java:60)
    at weblogic.xml.babel.scanner.Scanner.startState(Scanner.java:251)
    at weblogic.xml.babel.scanner.Scanner.scan(Scanner.java:178)
    at weblogic.xml.babel.baseparser.BaseParser.accept(BaseParser.java:533)
    at weblogic.xml.babel.baseparser.BaseParser.accept(BaseParser.java:510)
    at weblogic.xml.babel.baseparser.EndElement.parse(EndElement.java:34)
    at weblogic.xml.babel.baseparser.BaseParser.parseElement(BaseParser.java:457)
    at weblogic.xml.babel.baseparser.BaseParser.parseSome(BaseParser.java:326)
    at weblogic.xml.stax.XMLStreamReaderBase.advance(XMLStreamReaderBase.java:195)
    at weblogic.xml.stax.XMLStreamReaderBase.next(XMLStreamReaderBase.java:237)
    at weblogic.xml.stax.XMLEventReaderBase.parseSome(XMLEventReaderBase.java:189)
    at weblogic.xml.stax.XMLEventReaderBase.nextEvent(XMLEventReaderBase.java:122)
    at weblogic.xml.query.parsers.StAXEventAdaptor.queueNextTokens(StAXEventAdaptor.java:136)
    at weblogic.xml.query.parsers.StAXEventAdaptor.queueNextTokens(StAXEventAdaptor.java:124)
    at weblogic.xml.query.parsers.BufferedParser.fetchNext(BufferedParser.java:79)
    at weblogic.xml.query.iterators.GenericIterator.next(GenericIterator.java:104)
    at weblogic.xml.query.runtime.navigation.ChildPath.fetchNext(ChildPath.java:308)
    at weblogic.xml.query.iterators.GenericIterator.hasNext(GenericIterator.java:133)
    at weblogic.xml.query.schema.BestEffortValidatingIterator$OpenedIterator.hasNext(BestEffortValidatingIterator.java:224)
    at weblogic.xml.query.schema.ValidatingIterator.fetchNext(ValidatingIterator.java:82)
    at weblogic.xml.query.iterators.GenericIterator.next(GenericIterator.java:104)
    at weblogic.xml.query.xdbc.iterators.ItemIterator.fetchNext(ItemIterator.java:86)
    at weblogic.xml.query.iterators.LegacyGenericIterator.next(LegacyGenericIterator.java:109)
    at weblogic.xml.query.schema.BestEffortValidatingIterator.fetchNext(BestEffortValidatingIterator.java:85)
    at weblogic.xml.query.iterators.GenericIterator.next(GenericIterator.java:104)
    at weblogic.xml.query.xdbc.iterators.ItemIterator.fetchNext(ItemIterator.java:86)
    at weblogic.xml.query.iterators.LegacyGenericIterator.next(LegacyGenericIterator.java:109)
    at weblogic.xml.query.runtime.typing.SeqTypeMatching.fetchNext(SeqTypeMatching.java:137)
    at weblogic.xml.query.iterators.GenericIterator.next(GenericIterator.java:104)
    at com.bea.dsp.wrappers.jf.JavaFunctionIterator.fetchNext(JavaFunctionIterator.java:273)
    at weblogic.xml.query.iterators.GenericIterator.next(GenericIterator.java:104)
    at weblogic.xml.query.runtime.querycide.QueryAssassin.fetchNext(QueryAssassin.java:54)
    at weblogic.xml.query.iterators.GenericIterator.peekNext(GenericIterator.java:163)
    at weblogic.xml.query.runtime.qname.InsertNamespaces.fetchNext(InsertNamespaces.java:247)
    at weblogic.xml.query.iterators.GenericIterator.next(GenericIterator.java:104)
    at weblogic.xml.query.runtime.core.ExecutionWrapper.fetchNext(ExecutionWrapper.java:88)
    at weblogic.xml.query.iterators.GenericIterator.next(GenericIterator.java:104)
    at weblogic.xml.query.xdbc.iterators.ItemIterator.fetchNext(ItemIterator.java:86)
    at weblogic.xml.query.iterators.LegacyGenericIterator.hasNext(LegacyGenericIterator.java:130)
    at weblogic.xml.query.xdbc.util.Serializer.serializeItems(Serializer.java:251)
    at com.bea.ld.server.ResultPusher$DSP25CompatibilityPusher.next(ResultPusher.java:236)
    at com.bea.ld.server.ResultPusher.pushResults(ResultPusher.java:112)
    at com.bea.ld.server.XQueryInvocation.execute(XQueryInvocation.java:770)
    at com.bea.ld.EJBRequestHandler.invokeQueryInternal(EJBRequestHandler.java:624)
    at com.bea.ld.EJBRequestHandler.invokeOperationInternal(EJBRequestHandler.java:478)
    at com.bea.ld.EJBRequestHandler.invokeOperation(EJBRequestHandler.java:323)
    at com.bea.ld.ServerWrapperBean.invoke(ServerWrapperBean.java:153)
    at com.bea.ld.ServerWrapperBean.invokeOperation(ServerWrapperBean.java:80)
    at com.bea.ld.ServerWrapper_s9smk0_ELOImpl.invokeOperation(ServerWrapper_s9smk0_ELOImpl.java:63)
    at com.bea.dsp.ws.RoutingHandler$PriviledgedRunner.run(RoutingHandler.java:96)
    at com.bea.dsp.ws.RoutingHandler.handleResponse(RoutingHandler.java:217)
    at weblogic.wsee.handler.HandlerIterator.handleResponse(HandlerIterator.java:287)
    at weblogic.wsee.handler.HandlerIterator.handleResponse(HandlerIterator.java:271)
    at weblogic.wsee.ws.dispatch.server.ServerDispatcher.dispatch(ServerDispatcher.java:176)
    at weblogic.wsee.ws.WsSkel.invoke(WsSkel.java:80)
    at weblogic.wsee.server.servlet.SoapProcessor.handlePost(SoapProcessor.java:66)
    at weblogic.wsee.server.servlet.SoapProcessor.process(SoapProcessor.java:44)
    at weblogic.wsee.server.servlet.BaseWSServlet$AuthorizedInvoke.run(BaseWSServlet.java:285)
    at weblogic.wsee.server.servlet.BaseWSServlet.service(BaseWSServlet.java:169)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
    at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
    at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:292)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:175)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3498)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(Unknown Source)
    at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2180)
    at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2086)
    at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1406)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
    <Apr 29, 2011 12:47:01 PM EDT> <Notice> <ODSI> <BEA-000000> <LabOrderDataServices> <Error occurred performing ODSI operation: {ld:LabOrder/logical/LabOrderReport}getLabOrderDetails:1
    weblogic.xml.query.exceptions.XQueryDynamicException: ld:LabOrder/logical/LabOrderReport.ds, line 34, column 6: {err}FODC0002 [{bea-err}FODC0002a]: Error parsing input XML: Error at line:2 col:481 Line:2 '=' expected, got char[99]
    at weblogic.xml.query.iterators.AbstractIterator.reportUserError(AbstractIterator.java:95)
    at weblogic.xml.query.iterators.AbstractIterator.reportUserError(AbstractIterator.java:147)
    at weblogic.xml.query.parsers.Parser.reportParseError(Parser.java:157)
    at weblogic.xml.query.parsers.StAXEventAdaptor.queueNextTokens(StAXEventAdaptor.java:225)
    at weblogic.xml.query.parsers.StAXEventAdaptor.queueNextTokens(StAXEventAdaptor.java:124)
    Truncated. see log file for complete stacktrace
    javax.xml.stream.XMLStreamException: Error at line:2 col:481 Line:2 '=' expected, got char[99]
    at weblogic.xml.stax.XMLStreamReaderBase.advance(XMLStreamReaderBase.java:206)
    at weblogic.xml.stax.XMLStreamReaderBase.next(XMLStreamReaderBase.java:237)
    at weblogic.xml.stax.XMLEventReaderBase.parseSome(XMLEventReaderBase.java:189)
    at weblogic.xml.stax.XMLEventReaderBase.nextEvent(XMLEventReaderBase.java:122)
    at weblogic.xml.query.parsers.StAXEventAdaptor.queueNextTokens(StAXEventAdaptor.java:136)
    Truncated. see log file for complete stacktrace
    Error at line:2 col:481 Line:2 '=' expected, got char[99]
    at weblogic.xml.babel.scanner.ScannerState.expect(ScannerState.java:241)
    at weblogic.xml.babel.scanner.OpenTag.read(OpenTag.java:60)
    at weblogic.xml.babel.scanner.Scanner.startState(Scanner.java:251)
    at weblogic.xml.babel.scanner.Scanner.scan(Scanner.java:178)
    at weblogic.xml.babel.baseparser.BaseParser.accept(BaseParser.java:533)
    Truncated. see log file for complete stacktrace
    >
    Can somebody shed some light on this issue?
    Thanks
    Edited by: user738507 on May 6, 2011 7:21 AM

    Here is the java function:
         * Iterate through the search results and build out the XmlBean response
         * @param helper A helper class used to simplify common JDBC commands
         * @param doc The XmlBean document to populate
         * @param isCollectionsIncluded True if Collection info should be included in results, False otherwise
         * @param isFullDetailsIncluded True if Result data should be included in results, False otherwise
         * @throws Exception
         private static void addOrders(XmlBeansJDBCHelper helper, LabOrderReportDocument doc,
                   boolean isCollectionsIncluded, boolean isFullDetailsIncluded) throws Exception {
              int rows = 0;
              ResultSet rs = helper.getResultSet();
              LabOrders labOrders = doc.getLabOrderReport().addNewLabOrders();
              LabOrder record = null;
              HashMap<Long, Collection> parentCollectionMap = null;
              // initialize variable used to track when child elements of the XML should be created
              long previousRowOrderId = 0;
              long previousRowParentOrderCollectionId = 0;
              long previousRowOrderCollectionId = 0;
              long previousRowResultId = 0;
              boolean isRootCollectionNode = false;
              LabOrder.Collections lastParentOuterCollectionsAdded = null;
              com.idexx.services.lde.laborder.Collection.Collections lastParentInnerCollectionsAdded = null;
              com.idexx.services.lde.laborder.Collection lastCollectionAdded = null;
              Result lastResultAdded = null;
              // Loop through the results and build XmlBean nodes for each row
              // Since the SQL is joining Orders to Collections (one-to-many) to Results (one-to-many),
              // and returning a flat structure, there will be duplicate Order data on each row when
              // multiple collections exist on the Order, and duplicate Collection data when multiple
              // Results exist. We can use this fact to determine when to create a new Collection, or
              // Result node.
              while (helper.getResultSet().next())
                   rows++;
                   long currentRowParentOrderCollectionId = 0;
                   long currentRowOrderCollectionId = 0;
                   long currentRowResultId = 0;
                   long currentRowResultRemarkId = 0;
                   //int rowno = helper.getResultSet().getRow();
                   // Get the Order ID
                   logDebug("Getting the OrderId.....");
                   BigInteger dbOrderId = JDBCHelper.getBigInteger(rs, DataConstants.ORDER_ID);
                   logDebug("DONE getting the OrderId.");
                   long currentRowOrderId = dbOrderId.longValue();
                   // Determine the Order ID, Order Collection ID, and Result ID currently being processed.
                   // These will be used to determine whether to start a new LabOrder Bean, Collections Bean, or Results Bean
                   if (isCollectionsIncluded || isFullDetailsIncluded) {
                        // Get the ParentOrderCollectionID
                        logDebug("Getting the Parent Collection Order ID.....");
                        BigInteger dbParentOrderCollectionId = JDBCHelper.getBigInteger(rs, DataConstants.PARENT_ORDER_COLLECTION_ID);
                        if ( dbParentOrderCollectionId != null )
                             currentRowParentOrderCollectionId = dbParentOrderCollectionId.longValue();
                        else
                             currentRowParentOrderCollectionId = 0;
                        // Get the OrderCollectionID
                        logDebug("Getting the Order Collection ID.....");
                        BigInteger dbOrderCollectionId = JDBCHelper.getBigInteger(rs, DataConstants.ORDER_COLLECTION_ID);
                        if ( dbOrderCollectionId != null )
                             currentRowOrderCollectionId = dbOrderCollectionId.longValue();
                        else
                             currentRowOrderCollectionId = 0;
                        if ( isFullDetailsIncluded ) {
                             // Get the ResultID
                             logDebug("Getting the Result Id.....");
                             BigInteger dbResultId = JDBCHelper.getBigInteger(rs, DataConstants.RESULT_ID);
                             if ( dbResultId != null )
                                  currentRowResultId = dbResultId.longValue();
                             else
                                  currentRowResultId = 0;
                             // Get the ResultRemarkID
                             BigInteger dbResultRemarkId = JDBCHelper.getBigInteger(rs, DataConstants.RESULT_REMARK_ID);
                             if ( dbResultRemarkId != null )
                                  currentRowResultRemarkId = dbResultRemarkId.longValue();
                             else
                                  currentRowResultRemarkId = 0;
                   isRootCollectionNode = (currentRowParentOrderCollectionId == 0);
                   logDebug("currentRowOrderId: " + currentRowOrderId);
                   logDebug("previousRowOrderId: " + previousRowOrderId);
                   logDebug("currentRowResultId: " + currentRowResultId);
                   logDebug("previousRowResultId: " + previousRowResultId);
                   logDebug("currentRowResultRemarkId: " + currentRowResultRemarkId);
                   logDebug("previousRowResultRemarkId: N/A");
                   logDebug("currentRowParentOrderCollectionId: " + currentRowParentOrderCollectionId);
                   logDebug("previousRowParentOrderCollectionId: " + previousRowParentOrderCollectionId);
                   logDebug("currentRowOrderCollectionId: " + currentRowOrderCollectionId);
                   logDebug("previousRowOrderCollectionId: " + previousRowOrderCollectionId);
                   if ( currentRowOrderId != previousRowOrderId ) {
                        parentCollectionMap = new HashMap<Long, Collection>();
                        lastParentOuterCollectionsAdded = null;
                        lastParentInnerCollectionsAdded = null;
                        lastCollectionAdded = null;
                        lastResultAdded = null;
                        // This is a new Order, generate a new Lab Order bean
                        record = addOrder(labOrders, helper, dbOrderId, isFullDetailsIncluded);
                        logDebug("Order Added!");
                        // If there is Parent Collection data and it should be included, build a Collections element,
                        // and populate the first one
                        if ( !isRootCollectionNode && (isCollectionsIncluded || isFullDetailsIncluded) ) {
                             lastParentOuterCollectionsAdded = record.addNewCollections();
                             lastCollectionAdded = addCollection(record, helper, lastParentOuterCollectionsAdded, true);
                             logDebug("Collection Added! Is it null? " + (lastCollectionAdded == null));
                        // If there is Collection data and it should be included, build a Collections element,
                        // and populate the first one
                        if ( currentRowOrderCollectionId > 0 && (isCollectionsIncluded || isFullDetailsIncluded) ) {
                             if ( isRootCollectionNode ) {
                                  lastParentOuterCollectionsAdded = record.addNewCollections();
                                  lastCollectionAdded = addCollection(record, helper, lastParentOuterCollectionsAdded, false);
                                  parentCollectionMap.put(new Long(currentRowOrderCollectionId), lastCollectionAdded);
                                  logDebug("parent collection added to map: " + currentRowOrderCollectionId);
                             else {
                                  lastParentInnerCollectionsAdded = lastCollectionAdded.addNewCollections();
                                  lastCollectionAdded = addCollection(record, helper, lastParentInnerCollectionsAdded, false);
                             logDebug("Collection Added! Is it null? " + (lastCollectionAdded == null));
                             // If there is Result data and it should be included, build a Results element,
                             // and populate the first one
                             if ( currentRowResultId > 0 && isFullDetailsIncluded ) {
                                  logDebug("Adding result....");
                                  lastResultAdded = addResult(record, helper, lastCollectionAdded);
                                  logDebug("Result Added!");
                                  // If there is Result Remark data and it should be included, build a ResultRemarks element,
                                  // and populate the first one
                                  if ( currentRowResultRemarkId > 0 && isFullDetailsIncluded ) {
                                       addResultRemark(record, helper, lastResultAdded);
                        logDebug("DONE getting first Collection and Result.");
                   else if ( currentRowParentOrderCollectionId != previousRowParentOrderCollectionId
                             && (isCollectionsIncluded || isFullDetailsIncluded) ) {
                        // This is a new, top level, Order Collection to be included
                        lastParentOuterCollectionsAdded = null;
                        lastParentInnerCollectionsAdded = null;
                        lastCollectionAdded = null;
                        lastResultAdded = null;
                        logDebug("Getting next Order Collection...");
                        // If there is Parent Collection data and it should be included, build a Collections element,
                        // and populate the first one
                        if ( !isRootCollectionNode ) {
                             lastCollectionAdded = (com.idexx.services.lde.laborder.Collection)parentCollectionMap.get(new Long(currentRowParentOrderCollectionId));
                             logDebug("A Collection Added! Is it null? " + (lastCollectionAdded == null));
                        // If there is Collection data and it should be included, build a Collections element,
                        // and populate the first one
                        if ( currentRowOrderCollectionId > 0 ) {
                             if ( isRootCollectionNode ) {
                                  //LabOrder.Collections collections = record.addNewCollections();
                                  lastParentOuterCollectionsAdded = record.getCollections();
                                  lastCollectionAdded = addCollection(record, helper, lastParentOuterCollectionsAdded, false);
                                  parentCollectionMap.put(new Long(currentRowOrderCollectionId), lastCollectionAdded);
                             else {
                                  lastParentInnerCollectionsAdded = lastCollectionAdded.addNewCollections();
                                  lastCollectionAdded = addCollection(record, helper, lastParentInnerCollectionsAdded, false);
                             logDebug("B Collection Added! Is it null? " + (lastCollectionAdded == null));
                             // If there is Result data and it should be included, build a Results element,
                             // and populate the first one
                             if ( currentRowResultId > 0 && isFullDetailsIncluded ) {
                                  lastResultAdded = addResult(record, helper, lastCollectionAdded);
                                  // If there is Result Remark data and it should be included, build a ResultRemarks element,
                                  // and populate the first one
                                  if ( currentRowResultRemarkId > 0 && isFullDetailsIncluded ) {
                                       addResultRemark(record, helper, lastResultAdded);
                   else if ( currentRowOrderCollectionId != previousRowOrderCollectionId
                             && (isCollectionsIncluded || isFullDetailsIncluded) ) {
                        // This is a new Order Collection to be included inside of a parent collection
                        logDebug("Getting next CHILD Order Collection...");
                        logDebug("isRootCollectionNode: " + isRootCollectionNode);
                        logDebug("Order ID: " + helper.getBigInteger(DataConstants.ORDER_ID));
                        logDebug("Order Collection ID: " + helper.getBigInteger(DataConstants.ORDER_COLLECTION_ID));
                        logDebug("Collection ID: " + helper.getBigInteger(DataConstants.COLLECTION_ID));
                        if ( isRootCollectionNode ) {
                             lastCollectionAdded = addCollection(record, helper, lastParentOuterCollectionsAdded, false);
                             parentCollectionMap.put(new Long(currentRowOrderCollectionId), lastCollectionAdded);
                        else {
                             com.idexx.services.lde.laborder.Collection parentCollection = (com.idexx.services.lde.laborder.Collection)parentCollectionMap.get(new Long(currentRowParentOrderCollectionId));
                             if(parentCollection == null) {
                                  log(LOG_LEVEL.WARN, "Parent Collection with id: " + currentRowParentOrderCollectionId + " is null for collection id: " + currentRowOrderCollectionId + " but isRootCollectionNode is " + isRootCollectionNode);
                             } else {
                                  lastParentInnerCollectionsAdded = parentCollection.getCollections();
                                  logDebug("Is lastParentInnerCollectionsAdded null? " + (lastParentInnerCollectionsAdded == null));
                                  lastCollectionAdded = addCollection(record, helper, lastParentInnerCollectionsAdded, false);
                        // If there is Result data and it should be included, build a Results element,
                        // and populate the first one
                        if ( currentRowResultId > 0 && isFullDetailsIncluded ) {
                             lastResultAdded = addResult(record, helper, lastCollectionAdded);
                             // If there is Result Remark data and it should be included, build a ResultRemarks element,
                             // and populate the first one
                             if ( currentRowResultRemarkId > 0 && isFullDetailsIncluded ) {
                                  addResultRemark(record, helper, lastResultAdded);
                   else if ( currentRowResultId != previousRowResultId
                             && isFullDetailsIncluded ) {
                        // There is a new Result to be included
                        logDebug("Getting next Result...");
                        // This is a new result to be included
                        lastResultAdded = addResult(record, helper, lastCollectionAdded);
                        // If there is Result Remark data and it should be included, build a ResultRemarks element,
                        // and populate the first one
                        if ( currentRowResultRemarkId > 0 && isFullDetailsIncluded ) {
                             addResultRemark(record, helper, lastResultAdded);
                   else if ( isFullDetailsIncluded ) {
                        // There is a new Result Remark to include
                        logDebug("Getting next Result Remark...");
                        // This is a new result remark to be included
                        addResultRemark(record, helper, lastResultAdded);
                   logDebug("Done building response.");
                   previousRowResultId = currentRowResultId;
                   previousRowParentOrderCollectionId = currentRowParentOrderCollectionId;
                   previousRowOrderCollectionId = currentRowOrderCollectionId;
                   previousRowOrderId = currentRowOrderId;
              logDebug("Found " + rows + " rows of data.");
         }

  • XSQL bug  when using CURSOR in xsql:query SELECT statement?

    Hi there,
    When I tested with different XSQL pages, I found out that if I
    did not involve any XSQL pages that contain "CURSOR", I received
    data correctly and when I shut down Tomcat, Oracle DB server did
    NOT create any dump file (???). However, as long as I involve a
    XSQL page which contains "CURSOR", even I received data
    correctly, but when I shut down my Tomcat, Oracle DB server
    created a dump file (???).
    for example, if I involve xsql:query like:
    <xsql:query>
    SELECT emp_name,
    emp_id
    CURSOR( SELECT emp_address
    from address a
    where a.emp_id = b.emp_id)
    FROM employee b
    </xsql:query>
    Once, I involve this xsql page, when I shut down Tomcat, Oracle
    dB will create a dump file on the server.
    Even when I run this xsql page from
    oracle.xml.xsqlXSQLCommandLine, Oracle dB server still create a
    dump file on the server.
    Any idea for help ?
    Thanks,

    Hi,
    Is this what you are trying:
        try {
        Statement *stmt = conn->createStatement("SELECT ename AS aaaaaaaaaaaaaaa  FROM emp");
          ResultSet *rs = stmt->executeQuery ();
          vector<MetaData> md = rs->getColumnListMetaData ();
          int numCols = md.size ();
          cout<< "Number of columns :" << numCols << endl;
          string *colName = new string [numCols];
          int type = (int ) malloc (numCols);
          for (int i = 0; i < numCols; i++ ) {
            int ptype = md [ i ].getInt (MetaData::ATTR_PTYPE);
            if ( ptype == MetaData::PTYPE_COL ) {
              colName[ i ] = md[ i ].getString (MetaData::ATTR_NAME);
              cout<<"Column Name :" << colName[ i ] << endl;
          delete[] colName;
          stmt->closeResultSet (rs);
          conn->terminateStatement (stmt);
        catch (SQLException &ex) {
                    cout<<ex.getMessage()<<endl;
        }The above snippet works correctly for me.
    Rgds.
    Amogh

  • XML errors when running specific reports in SCCM 2012.

    I'm having almost exactly the same problem as is referenced in this article:  http://social.msdn.microsoft.com/Forums/uk/sqlreportingservices/thread/587a3319-bc54-4d30-bb3f-bb90a0c6ec50.  When I try to run either of these reports (Computers with
    specific software registered in Add Remove Programs; Count of instances of specific software registered with Add or Remove Programs) I receive the XML error shown in the attached screenshot.  I'm fairly sure the problem is the same as the other admin
    was experiencing and I just need to remove the unprintable characters from the dbo.v_Add_Remove_Program column.  However, I have not been able to figure that part out yet.  In addition, will this be a potentially reoccurring issue?  I'm assuming
    it is being caused by an application with a strange name being listed in the SQL table.  Thank you in advance.
    Über Random

    Torsten,  thank you for your response, I do appreciate it.  However, I had already seen the information from Garth and so had run the following SQL query: 
    use CM_UV2
    Select distinct
     CHARINDEX(cast(0xFFFF as varchar(1)),DisplayName0),
     DisplayName0
    from
     dbo.v_Add_Remove_Programs
    Where
     CHARINDEX(cast(0xFFFF as varchar(1)),DisplayName0) > 0
    When I run that query, plugging in 0xFFFF from my error, it executes successfully, but I get nothing in the way of results.  When I use Garth's 0x28 I receive the expected results of any software that has a "(" in it.  Can anyone tell me why
    the 0xFFFF cannot be found or what 0xFFFF resolves to?
    Are there any other methods from MS for resolving this issue other than hacking their databases??  In one of the articles I was looking at the MS MVP was quick to state that finding and deleting any offending values in order to make the reports run
    correctly was definitely in no way supported.  Now, I understand that MS can't have people just going around and hacking up their reports and still expect to be supported, but at this point I REALLY must call BS!  Microsoft really
    needs to come up with a permanent solution to this problem that doesn't involve hacking the database. 
    Über Random

Maybe you are looking for

  • How to stop a process chain when its running?

    Dear Experts, How to stop a process chain when its running? is it that a chain can be stoppend when we open an info package of that chain ? Thank you, Raj

  • Front Row video trailers

    i've noticed that when when i'm watching movie trailers in front row the album art for the movie trailer is blurry and has a low resolution, lower than what it's suppossed to be. how do i make the image more clear?

  • Invoiced Quantity grouped by Product Hierarchy

    Hello, I am trying to create an Evaluation (tCode MC11) which will report on Invoiced Quantity grouped by Product Hierarchy. I created an evaluation referencing an evaluation structure which references two other eval. structures: one - for data table

  • For month I cannot connect to the Capital One online account services

    Whenever I try to connect to the online services of Capital One in the uk, I get a note "We're sorry, Online Account Services is currently unavailable. I called Capital One and was told: now problem just use the Internet Explorer. But I prefer the Fi

  • 9006Connection has already been closed

    I am using WL server 6.1 SP2 with Apache plugin. I am continuously getting the following message in my app server log 9006Connection has already been closed. Any ideas what is causing this message? Thanks