XML-SQL Utility Question

I have data stored in a field that contains spaces. When I execute the XMLQuery it returns the row with the value trimmed. Is it possible to preserve the spaces for the value retrieved by the query?
Thanks in advance,
Jeff

I just tried inserting a value into a VARCHAR2 column like this:
insert into spacedata values(' one two three ');
and the XSU output I get is:<?xml version = '1.0'?>
<ROWSET>
<ROW num="1">
<VAL> one two three </VAL>
</ROW>
</ROWSET>with the spaces preserved. This was using the OracleXML command line utility.
How specifically are you using XSU in your code?

Similar Messages

  • XML SQL Utility, Unicode

    Hi,
    I have some questions to the XML-SQL-Utility:
    1.) Is there a bug in the oracle.xml.sql.query class:
    OracleXMLQuery qry = new OracleXMLQuery(conn,"select POSITION from DATAS");
    qry.setRowTag("DROW");
    OracleXMLDocGenDOM gdoc = new OracleXMLDocGenDOM();
    qry.getXML(gdoc);
    conn.close();
    Document docin = gdoc.getXMLDocumentDOM();
    NodeList rows = docin.getDocumentElement().getElementsByTagName("DROW");
    // The Node "DROW" wasn't found.
    // It work if I do it below
    NodeList rows = docin.getDocumentElement().getElementsByTagName("ROW");
    // It doesn't matter what is set in the "qry1.setRowTag("DROW");"
    (I use the sun parser)
    2.) I have a problem by insertXML(Document);
    I will insert a Document with a structure as below in my database:
    <?xml version="1.0" encoding="UTF-16"?>
    <ROOTDOC>
    <ROW>
    <DOCUMENTREF>133-12224</DOCUMENTREF>
    <TEXT>hello</TEXT>
    </ROW>
    <ROW>
    <DOCUMENTREF>133-124</DOCUMENTREF>
    <TEXT>world</TEXT>
    </ROW>
    </ROOTDOC>
    XmlDocument sdoc = new XmlDocument();
    Element rootDEl = sdoc.createElement("ROOTDOC");
    sdoc. appendChild(rootDEl);
    Element rowEl = sdoc.createElement("ROW");
    Element docREl = sdoc.createElement("DOCUMENTREF");
    docREl.appendChild(sdoc.createTextNode("133-12224"));
    NodeList rows = sdoc.getDocumentElement().getElementsByTagName("ROW");
    int size = rows.getLength();
    System.out.println("SIZE: " size "\n");
    // The size is null, what's wrong ?
    OracleXMLSave save = new OracleXMLSave(conn, tabName);
    int rowCount = save.insertXML(sdoc);
    // It didn't insert something in my table !
    3.) I save Unicode UTF-16 in my database with the XML SQL Utility:
    <?xml version="1.0" encoding="UTF-16"?>
    <ROOTDOC>
    <ROW>
    <TEXT>D$55DD</TEXT>
    </ROW>
    <ROW>
    <TEXT>tt%zu||</TEXT>
    If I read it whit the oracle.xml.sql.query, it is Unicode UTF-8:
    OUTPUT IS:
    <?xml version="1.0"?>
    <ROOTDOC>
    <ROW num="1">
    <TEXT>D$55--</TEXT>
    </ROW>
    <ROW num="2">
    <TEXT>tt%zu33</TEXT>
    </ROW>
    I want a output as the input (Unicode UTF-16).
    Can anyone please advise on the problems.
    Thanks
    null

    Hi H.Ozawa,
    thanks for trying but non of the solution helped me, sorry.
    Question 1:
    I'll try it again like this:
    OracleXMLQuery qry = new OracleXMLQuery(conn,"select POSITION from DATAS");
    qry.setRowTag("DROW");
    Document docin = qry.getXMLDOM();
    conn.close();
    NodeList rows = docin.getDocumentElement().getElementsByTagName("DROW");
    // The Node "DROW" wasn't found.
    Question 2:
    <?xml version="1.0" encoding="UTF-16"?>
    <ROOTDOC>
    <ROW>
    <DOCUMENTREF>133-12224</DOCUMENTREF>
    <TEXT>hello</TEXT>
    </ROW>
    <ROW>
    <DOCUMENTREF>133-124</DOCUMENTREF>
    <TEXT>world</TEXT>
    </ROW>
    </ROOTDOC>
    XmlDocument sdoc = new XmlDocument();
    Element rootDEl = sdoc.createElement("ROOTDOC");
    sdoc. appendChild(rootDEl);
    Element rowEl = sdoc.createElement("ROW");
    Element docREl = sdoc.createElement("DOCUMENTREF");
    docREl.appendChild(sdoc.createTextNode("133-12224"));
    Element docTEl = sdoc.createElement("TEXT");
    docTEl.appendChild(sdoc.createTextNode("hello"));
    An error message occur:
    java.lang.reflect.InvocationTargetException: java.lang.IllegalAccessError: try to access class com/sun/xml/tree/ParentNode from class project/dbase/xmlwritedb at project.dbase.xmlwritedb.main(xmlwritedb.java:33)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.borland.jbuilder.util.BootStrap.invokeMain(Unknown Source)
    at com.borland.jbuilder.util.BootStrap.main(Unknown Source)
    Question 3:
    I try it like below but the output is "UTF-8" encoding
    OracleXMLDocGenDOM gdoc = new OracleXMLDocGenDOM();
    query.getXML(gdoc);
    XMLDocument docin = (XMLDocument)gdoc.getXMLDocumentDOM();
    docin.setEncoding("ISO-8859-1"); //docin.setEncoding("UTF-16");
    NodeList rows = docin.getDocumentElement().getElementsByTagName("ROW");
    Element row = (Element)rows.item( i );
    NodeList elements = row.getElementsByTagName( "DOCUMENTREF" );
    So you or someone have another idea to fix this problems.
    Thanks
    null

  • Is XML-SQL Utility for Java run on Client Side?

    A question about the XML-SQL Utility for Java
    When a client program connect to a Oracle database (the clinet program and Oracle DB is run on two different machine. Oracle 8i is used) and use the oracle.xml.sql.query.OracleXMLQuery Class (form the XSU) to generate XML by given a SQL query. I want to know the transforation process is execute in the Clinet side or the database?
    Is there any method that i can retrieve the XML directly from the database rather then doing the transformation form the Client side?

    Set JDK_HOME to the directory where you install your JDK (Java Development Kit).
    So instance, I've install JDK1.1.8 on my
    C drive so
    set JDK_HOME=c:\jdk1.1.8;c:\jdk1.1.8\bin

  • Re: usage of XML SQL Utility

    Hi there,
    I have such a design issue, which I posted a few days ago and I reworded here. Hopefully, I made it clearer this time.
    The working scenario, coded in Java, goes like this:
    1> Given an XML string, I parse it out and get a set of values for a certain set of elements, say in one ROW.
    2> I embed this set of values in the WHERE clause of a query string, do a SELECT.
    3> Based on the result from the above SELECT, I do UPDATE, SELECT and INSERT to a few tables.
    My question:
    Could Oracle XML SQL Utility be used here? If yes, how?
    From my reading so far, the Oracle XSU handles the SQL-XML and XML-SQL Mapping very well, in terms of a whole XML string. But, if at some point, I want to break the XML string and get some business logic mingled in it, say a simple calculation, how can I efficiently deal with it?
    Any suggestion would be greatly appreciated. Thanks.
    ---Denali
    null

    Here are the five choices I see:
    [list]
    [*] XSU111_ver1_2_1.zip -- to be used with JDBC1.x (JDK1.1.x or later) and loadable into Oracle8.1.5 (486 KB)
    [*] XSU12_ver1_2_1.zip -- to be used with JDBC2.0 (JDK1.2.x or later) and loadable into Oracle8.1.6 or later (508 KB)
    [*] XSU111_816_ver2_1_0_beta.zip -- to be used with JDBC1.0 and JDK1.1.8 (486 KB)
    [*] XSU12_816_ver2_1_0_beta.zip -- to be used with JDBC2.0 (JDK1.2.x or later) and loadable into Oracle8.1.6 (486 KB)
    [*] XSU12_ver2_1_0_beta.zip -- to be used with JDBC2.0 (JDK1.2.x or later) and loadable into Oracle8.1.7 or later (508 KB)
    [list]

  • Errors when loading XML SQL Utility

    I'm working on a Unix machine, attempting
    to load the Oracle XML SQL Utility classes
    into my database so that I can use them in
    stored procedures.
    My problem is occuring when I try to use
    loadjava to install the classes. I haved
    altered both env.csh and oraclrxmlsqlload.csh to match my shell and desired settings, but I get a core dump when loadjava executes in the script:
    SIGSEGV received. Processing terminated
    full version ""
    Full thread dump:
    "Async Garbage Collector" (TID:0x3002bd00, sys_thread_t:0x2006b7d8)
    Native Thread State: ThreadID: 00000203 Reuse: 1 DAEMON MONITOR WAIT
    Native Stack Data : base: 201133a0 pointer 20113018 used(904) free(257144)
    ----- Monitors held -----
    ----- Native stack -----
    ------ Java stack ------ () prio=1
    "Finalizer thread" (TID:0x3002bd38, sys_thread_t:0x2006b588)
    Native Thread State: ThreadID: 00000102 Reuse: 1 DAEMON MONITOR WAIT
    Native Stack Data : base: 200ca230 pointer 200c9f68 used(712) free(257336)
    ----- Monitors held -----
    ----- Native stack -----
    ------ Java stack ------ () prio=1
    "main" (TID:0x3002bd70, sys_thread_t:0x20007278)
    Native Thread State: ThreadID: 00000001 Reuse: 1 USER PRIMORDIAL RUNNING
    Native Stack Data : base: 2ff22004 pointer 2ff1f658 used(10668) free(247380)
    ----- Monitors held -----
    java.lang.Class java/sql/DriverManager@30025318
    oracle.jdbc.oci8.OCIDBAccess@300304e8
    ----- Native stack -----
    eoj_memcpy(d15779b8)
    eoj_memcpy(d1574d08)
    eoj_memcpy(d1574484)
    inflate_copyright(2c203a6e)
    inflate_copyright(2c203a6e)
    [sigsegv]...
    ------ Java stack ------ () prio=5 current thread
    Anyone have any ideas what might be the problem?

    Sorry...missed your first question there.
    I'm running AIX 4.3.2 on an IBM RS/6000 Server. I've got Java 1.1.6 installed.

  • XML SQL Utility & ROW-Tag

    Hi,
    I have a question about the XML SQL Utility.
    Must I have the <ROOTDOC> and <ROW> TAG's in my XML-Document to insert the Document with the Utility in my Database, or can I use a random defined TAG as start TAG, e.g. the <BOOK_ID>.
    XML-Document:
    Book.xml
    <?xml version="1.0" encoding="UTF-16"?>
    <!DOCTYPE ANWENDUNGEN SYSTEM "file:/E:/book.dtd">
    <!-- ?xml-stylesheet href="book.xsl" type="text/xsl"? -->
    <ROOTDOC>
    <ROW>
    <BOOK_ID>55-66</BOOK_ID>
    <BOOK_NAME>JavaScript</BOOK_NAME>
    <REF_TO_PRICE>2-AA</REF_TO_PRICE>
    <PRICE_ID>2-AA</PRICE_ID>
    <PRICE_DM>55.50DM</PPRICE_DM>
    </ROW>
    </ROOTDOC>
    Can anyone help me, please ?
    Thanks
    null

    You can use a "random" tag at the "ROW" tag, using the -rowTag XXXX command line option.
    The utility will attempt to insert the CHILDREN elements of the rowset as if they were the columns of each ROW in the table whose name you provide.

  • How to use my own DTD and table using the XML SQL utility.

    Hey,
    Here is my question. I have succesfully installed Oracle XML SQL utility and I had played around on that. Now I have my own DTD that too from Rosettanet(PIP). Tell me how can I use my own table, and my dtd using the existing utility. What are all the changes do I need to do. I am strugling it from past 4 days. I couldn't. Please help me!

    Hi chris,
    Yes, the SQL can be changed only by using Discoverer Administrator.
    Open the report/workbook that is based on the custom SQL that you want to change in Discoverer Plus. Look at the Folder that is being used to select the columns of the report.
    Open up the Discoverer Administrator with the id that has access to the tables referenced in the report. And the custom folder with the same name as in Disc Plus would be listed down in the Business Area (Which Business Area the custom folder belongs to can be determined with the help of disc plus).
    Just open up that folder, and change the SQL in it. You can pasted your new sql in there and click on Validate SQL to validate it for errors. If no errors, then the custom folder is successfully changed.
    In order to have it reflected, close your existing disc plus session and reopen it, and you can go about using the custom folder.
    Hope this helps!
    Thanks.

  • Unable to load Oracle XML SQL utility

    The following error appears for each java
    class, when we attempt to load Oracle XML sql
    utility into Oracle using the oraclexmlsqlload
    script:
    E.g.
    Error while resolving class OracleXMLStore
    ORA-00904: invalid column name
    Does anyone know why we would receive this error?
    Platform: Hp-UX 11.0
    Oracle Version: 8.1.5.0
    Background information:
    The database was original created with the
    compatible=8.0.5 set in the init.ora file, and
    the creatation of java classes failed due to this,
    so switched compatible to 8.1.0. Now after we
    we adjusted the compatible setting and restarted
    database, we started to receive the errors as
    described above.
    null

    Murali,
    Thank you, after I initialized Oracle's javavm
    the errors disappeared.
    The scripts were located under the javavm/install
    directory.
    Thanks again.
    Murali K (guest) wrote:
    : Hi Steven,
    : Is the JavaVM loaded. i.e. are all the classes necessary for
    : running Java in the server are loaded into the server? The
    most
    : common answer to your problem is that the javavm has not been
    : initialized correctly or the database does not have all the
    java
    : library files necessary to load java programs.
    : Please read chapter 4 in the Oracle8i java developers guide
    : which talks about initializing a java-enabled database by
    : running the initjvm script.
    : If this still occurs then maybe it is a bug and we will have
    to
    : look at it.
    : Thx
    : Murali
    : Steven Wegner (guest) wrote:
    : : The following error appears for each java
    : : class, when we attempt to load Oracle XML sql
    : : utility into Oracle using the oraclexmlsqlload
    : : script:
    : : E.g.
    : : Error while resolving class OracleXMLStore
    : : ORA-00904: invalid column name
    : : Does anyone know why we would receive this error?
    : : Platform: Hp-UX 11.0
    : : Oracle Version: 8.1.5.0
    : : Background information:
    : : The database was original created with the
    : : compatible=8.0.5 set in the init.ora file, and
    : : the creatation of java classes failed due to this,
    : : so switched compatible to 8.1.0. Now after we
    : : we adjusted the compatible setting and restarted
    : : database, we started to receive the errors as
    : : described above.
    null

  • 1.2 JVM crashes using XML SQL Utility 1.1.10 (NT 8.1.5)

    I am trying to use the XML SQL Utility for Java (Oracle 8.1.5) to obtain a DTD or XML schema for tables in our database.
    I have installed the XSU111.ZIP archive,
    set the CLASSPATH and stuff, loaded the JAR
    files (xmlparserv2.jar, oraclexmlsql.jar)
    processed the xmlgenpkg.sql script (following the installation instructions)
    When I execute the samples in Java, the JVM (JDK 1.2.2) crashes in javai.dll.
    The same error occurs when I run java OracleXML getXML ....
    The installation file (env.bat) lists the JDBC driver ZIP as CLASSES12.ZIP, which is of course, not available for 8.1.5, which is what the download instructions indicated is appropriate for XSU 1.1.1.
    Any ideas? Do I need to upgrade to 8.1.6?
    Can I patch the JDBC with classes12.ZIP.
    By the way, when I execute the commands in PL/SQL using xmlgen package, everything is fine.
    Regards and Much thanks

    Set JDK_HOME to the directory where you install your JDK (Java Development Kit).
    So instance, I've install JDK1.1.8 on my
    C drive so
    set JDK_HOME=c:\jdk1.1.8;c:\jdk1.1.8\bin

  • Help Needed -- Oracle XML/SQL utility and PL/SQL parser

    Let's say we have an xml file
    <?xml version="1.0" standalone="no"?>
    <abc>
    <def>
    <ghi>test</ghi>
    </def>
    <jkl>
    <mno>testing</mno>
    </jkl>
    </abc>
    We can store the <def> tag in one table say def and <jkl> tag in another table say jkl.
    Is there a way to combine def and jkl and insert in one table so that there in one row with two columns test and testing??
    null

    Hi,
    Are u sure that it is a java enabled database? The most common
    case of failure with the xmlgen package is because the loadjava
    command did not succeed.
    Please make sure that oraclexmlsqlload.bat file loaded all the
    java procedures successfully. If not then u would have to java-
    enable your database by running the initjvm script. (please see
    the docs).
    Thx
    Murali
    Iveta Vojtko (guest) wrote:
    : Hi,
    : I have downloaded XML SQL Utility for Java against Oracle
    8.0.5
    : on WindowsNT. The xmlgen package was created successfully but
    : its body is invalid and my PL/SQL test has failed because of
    : following error: PLS-00103: Encountered the symbol "NAME"
    : when expecting one of the following: := . ( @ % ; not null
    range
    : renames default character. The symbol ":= was inserted abefore
    : "NAME" to continue.
    : Is it because I am not using Oracle8i? I just want to use the
    : server side of XML SQL. Please, reply asap. Thank you.
    Oracle Technology Network
    http://technet.oracle.com
    null

  • Oracle 8i Lite and XML SQL Utility

    Can I use XML SQL Utility with Oracle 8i Lite
    using the Oracle 8i Lite Driver
    null

    There will be an version of the XML SQL Utility appearing here shortly. In the meantime you can download the current version of the XSQL Servlet which has the new v2 compatible oraclexmlsql.jar.
    Oracle XML Team

  • XML SQL Utility - settagcase - all tags are upper or lower

    I am using the XML SQL Utility (XSU) for PL/SQL to generate a xml document from some tables and objects. Is it possible to have the xml elements start and end tags appear in the case of the objects I have defined (i.e. CamelCase)? I can either have them appear as all upper or all lower case. However the oracle documentation has a SETTAGCASE function with an option for "as are". Is this supposed to allow for the case to follow how i have defined the fields in the object? If not is there a way?
    For example here is an object
    create or replace TYPE     CREDIT_APPLICANTTYPE AS OBJECT
      First VARCHAR2(15 BYTE),
      Last  VARCHAR2(35 BYTE),
      Middle VARCHAR2(1 BYTE),
      Suffix VARCHAR2(3 BYTE)
    );Settagcase 0 option doesn't seem to do anything different than the upper_case option when i generate the xml
    http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14258/d_xmlque.htm#i1033636
    set serveroutput on
    declare
      queryCtx dbms_xmlquery.ctxType;
      charstring VARCHAR2(255);
      outxml CLOB;
    begin
        queryCtx := dbms_xmlquery.newContext('select CREDIT_APPLICANTTYPE(''Joe'',''Smith'',''A'',''Jr.'') as AppName from dual');
        dbms_xmlquery.settagcase(queryCtx, 0);
        outxml := dbms_xmlquery.getXml(queryCtx);
        dbms_xmlquery.closeContext(queryCtx);
        charstring := dbms_lob.substr(outxml, 255, 1);
        dbms_output.put_line(charString);
    end;Output is in uppercase but i would like camel case:
    <?xml version = '1.0'?>
    <ROWSET>
    <ROW num="1">
    <APPNAME>
    <FIRST>Joe</FIRST>
    <LAST>Smith</LAST>
    <MIDDLE>A</MIDDLE>
    <SUFFIX>Jr.</SUFFIX>
    </APPNAME>
    </ROW>
    </ROWSET>

    Actually I figured out the issue. Oracle automatically outputs the column alias as upper case unless you put it in quotes. I defined my object like this and it works with settagcase 0
    create or replace TYPE CREDIT_APPLICANTTYPE AS OBJECT
    "First" VARCHAR2(15 BYTE),
    "Last" VARCHAR2(35 BYTE),
    "Middle" VARCHAR2(1 BYTE),
    "Suffix" VARCHAR2(3 BYTE)
    );

  • XML SQL Utility (XSU) in BPEL process

    Is it possible to use XML SQL Utility (XSU) in BPEL process? I would like to generate XML from a query.

    I'm using Oracle 8.1.6.1.0 (but instead of classes12.zip I'm attempting to use ojdbc14.jar)

  • Generating multi-level XML in Oracle 8i using XML-SQL utility

    Oracle 8i has a limitation when it comes to the object types. Only one-level nesting of collection is allowed. Oracle 9i apparently removes this limitation.
    I am trying to generate XML for a hierarchical (conceptually) structure. To do that I am using XML-SQL utility (XSU) running agains an object view build on top of the relational data. The problem is the limit to onelevels of colelction nesting. Oracle 8i gives you a way to create a view with more levels of nesting by using references (REF). The problem is that when XSU runs agains a view with the references, it inserts the references into the XML document (instead of dereferencing them).
    Is there a way to generate XML with Oracle 8i with more than two levels of collection nesting?
    Thank you.
    Michael

    Oracle 8i has a limitation when it comes to the object types. Only one-level nesting of collection is allowed. Oracle 9i apparently removes this limitation.
    I am trying to generate XML for a hierarchical (conceptually) structure. To do that I am using XML-SQL utility (XSU) running agains an object view build on top of the relational data. The problem is the limit to onelevels of colelction nesting. Oracle 8i gives you a way to create a view with more levels of nesting by using references (REF). The problem is that when XSU runs agains a view with the references, it inserts the references into the XML document (instead of dereferencing them).
    Is there a way to generate XML with Oracle 8i with more than two levels of collection nesting?
    Thank you.
    Michael

  • XML SQL utility

    Hi,
    When I try to execute this query using XML SQL utility
    I am getting the following error. I had declared 'XMLGEN &
    GETXML' as CLOB and tried but got the same error. Advice me. I
    am struggling to find the solution using XSQL Servlet..but
    couldn't get..I spend one week on that..no results...this is the
    second trial. Is there any online help or service to do that.
    xmlString := xmlgen.getXML('select * from scott.emp');
    ERROR at line 9:
    ORA-06550: line 9, column 16:
    PLS-00201: identifier 'XMLGEN.GETXML' must be declared
    ORA-06550: line 9, column 3:
    PL/SQL: Statement ignored
    I have Oracle XML parser for Java 2, and XML SQL utility and
    oracle 8i database....
    This is the query.........(Your example)
    declare
    xmlString CLOB;
    amount integer:= 4000;
    position integer := 1;
    charString varchar2(4000);
    i binary_integer := 0;
    inclDTD number := 0;
    begin
    xmlString := xmlgen.getXML('select * from scott.emp');
    dbms_lob.open(xmlString,DBMS_LOB.LOB_READONLY);
    loop
    dbms_lob.read(xmlString,amount,position,charString);
    dbms_output.put_line(charString);
    position := position + amount;
    end loop;
    exception
    when no_data_found then
    dbms_lob.close(xmlString);
    dbms_lob.freetemporary(xmlString);
    end;
    null

    Have you loaded the xmlgenpkg.sql in the schema in which you
    are trying to execute your PL/SQL block?
    Chan (guest) wrote:
    : Hi,
    : When I try to execute this query using XML SQL utility
    : I am getting the following error. I had declared 'XMLGEN &
    : GETXML' as CLOB and tried but got the same error. Advice me. I
    : am struggling to find the solution using XSQL Servlet..but
    : couldn't get..I spend one week on that..no results...this is
    the
    : second trial. Is there any online help or service to do that.
    : xmlString := xmlgen.getXML('select * from scott.emp');
    : ERROR at line 9:
    : ORA-06550: line 9, column 16:
    : PLS-00201: identifier 'XMLGEN.GETXML' must be declared
    : ORA-06550: line 9, column 3:
    : PL/SQL: Statement ignored
    : I have Oracle XML parser for Java 2, and XML SQL utility and
    : oracle 8i database....
    : This is the query.........(Your example)
    : declare
    : xmlString CLOB;
    : amount integer:= 4000;
    : position integer := 1;
    : charString varchar2(4000);
    : i binary_integer := 0;
    : inclDTD number := 0;
    : begin
    : xmlString := xmlgen.getXML('select * from scott.emp');
    : dbms_lob.open(xmlString,DBMS_LOB.LOB_READONLY);
    : loop
    : dbms_lob.read(xmlString,amount,position,charString);
    : dbms_output.put_line(charString);
    : position := position + amount;
    : end loop;
    : exception
    : when no_data_found then
    : dbms_lob.close(xmlString);
    : dbms_lob.freetemporary(xmlString);
    : end;
    Oracle Technology Network
    http://technet.oracle.com
    null

Maybe you are looking for