Query to find CLOB columns to cause xmltype nodes greater than 64 k error

hi all,
10G R2 - I have an NCLOB field which holds xml and I need to do some parsing on the column as an xmltype. So, I was wondering if anyone would know of a proper query to query that table for any rows where
that nclob field will cause a > 64k node error when trying to parse the nclob field as xml (ie -> xmltype(nclobfield))
thanks in advance! -- jp

WHERE LENGTHB(nclob_column) < 64 * 1024Will return rows where NCLOB is less than 64K bytes.
SY.

Similar Messages

  • XML Query on a CLOB Column

    I am trying to query a column which is of CLOB data type,in Oracle, and My Data is stored something like this
    <Result><Institution>XXX</Institution><Application>XXX</Application><ID>123123123</ID><SequenceID>MSGID123123</SequenceID><DateTime></DateTime></Result>
    I am trying to run the xquery on this like this
    SELECT Message FROM LOGS
    ('for $i in ora:view("LOGS")
    where $i/Result/Institution/ = 'XXX'
    return $i/Result/Institution/
    PASSING :Institution AS 'XXX').
    I either get exception that "missing right parenthesis" or doesnt execute at all.
    My Table "LOGS" as the Columns Message as CLOB.
    Any Ideas how to query on this kind of columns in a table in Oracle using XQuery?
    Cheers
    Sridhar

    Hi,
    First of all, please always give your database version (all digits from "select * from v$version").
    Oracle XML support is achieved through the XMLType datatype, so you must first convert any string variable (CLOB, VARCHAR2) holding XML data to that type in order to use XML-related functions.
    Now, to the point, if you want to check the existence of a particular node, you can try the following :
    -- if Institution may occur multiple times :
    select message
    from logs
    where existsnode(xmltype(message), '/Result[Institution="'||:p_institution||'"]') = 1
    -- if only one Institution element is expected :
    select message
    from logs
    where extractvalue(xmltype(message), '/Result/Institution') = :p_institution
    ;And the 11g equivalent :
    select message
    from logs
    where xmlexists('$d/Result[Institution=$p]' passing xmltype(message) as "d", :p_institution as "p")
    select message
    from logs
    where xmlcast(
            xmlquery('$d/Result/Institution' passing xmltype(message) as "d" returning content)
            as varchar2(30)
          ) = :p_institution
    ;

  • Query to find which past ses caused ORA-1652: unable to extend temp segment

    Hi,
    I m trying to get information on the sessions/sql query that have cause ORA-1652: unable to extend temp segment from past 2 days. Basically need to know which all sessions in past 2 days have caused ORA-1652: unable to extend temp segment.
    I have generated the AWR report but not able to figure it out which sessions caused this error.
    Thanks in advance

    913410 wrote:
    Hi,
    I m trying to get information on the sessions/sql query that have cause ORA-1652: unable to extend temp segment from past 2 days. Basically need to know which all sessions in past 2 days have caused ORA-1652: unable to extend temp segment.
    I have generated the AWR report but not able to figure it out which sessions caused this error.
    Thanks in advance
    01652, 00000, "unable to extend temp segment by %s in tablespace %s"
    // *Cause:  Failed to allocate an extent of the required number of blocks for
    //          a temporary segment in the tablespace indicated.
    // *Action: Use ALTER TABLESPACE ADD DATAFILE statement to add one or more
    //          files to the tablespace indicated.

  • Xcode causes CPU HOT (greater than 90 degrees C) during download

    Title says it all.
    XCODE | Preferences| Download | [ ] Check for and install updates automatically is deliberately OFF, due to excessive CPU cooking for long periods of time above 90 degress C peaking above 100 degress C. It was off before XCODE decided to download more than 2 GB today without my consent.
    I do know that most modern hardware with temperature sensors will try to shutdown before i7 CPU meltdown.
    XCODE would not allow me to stop the download, because instead of opening XCODE on my demand, it presented a dialouge box to state that XCODE is updating and cannot open. Whenever XCODE downloads, the CPU cooks and the network bandwidth consumption is very high, higher than Adobe Flash Player, and all Mac users know how bad that is. Network usage should not cook the CPU. Installation of software should not cook the CPU. Spotlight should not cook the CPU. Timemachine should not cook the CPU.

    A small update, but the main quesiton remains.
    I tried to compare the core temp and cpu temp with different programs, Openhardware monitor, core Temp, Real temp, and speedfan, and they appear to be different.
    Openhdwre and core temp are the same, around 72 at max load for 10 min, but speedfan showed 62.
    Then i understood from other forum entries that what is really measured is not the temperature, but the difference in temperature up to the Tmax. , and that is subracted from Tmax to show the real temperature.
    Now one reason for the differences is that Tmax can be different in the different programs.
    Although all programs show the correct processor type E5420, they show Tmax of 90, 100 °C
    I could not find any intel specs on Tj max. and different programs assume different values .
    The intel specs for Tcase are 67 ° (See linkin previous post).
    according to intel:
    "Tcase Max is the maximum temperature that the Tcase sensor should reach. Both Tcase and the thermal specification information can be found on the Intel web site.
    Tjunction Max is the maximum temperature the cores can reach before thermal throttling is activated. Thermal throttling happens when the processor exceeds the maximum temperature. The processor shuts itself off in order to prevent permanent damage."
    [http://www.intel.com/support/processors/sb/CS-033342.htm]
    So although crossing th 67°C would not mean an inmeadiate danger, i am still a bit worried about exceeding this for a longer time.
    The problem is that intel does not seem to specify the real Tj Max. so all these temperature measuring programs are just guessing. With the unfortiunate effect that its difficult to know one is exceeding Tcase or not.
    My only reference possibiility seems to be some one having a D10 with an E5420 that would do a cpu intensive test, and report the max temp, and reference Tj max of the program.
    If there is any one having a spare 15 minutes? or another suggestion idea?

  • XPath query on a CLOB?

    Does anyone know if there is an easy way to run an XPath query against a CLOB column? I know it's simple if the column is XMLType, but what if it's a CLOB?

    Does CLOB store XML? If so, simply use XMLTYPE(clob_column).
    SY.

  • How to query XML data stored in a CLOB column

    I don't know XMLDB, so I have a dumb question about querying XML data which is saved as CLOB in a table.
    I have a table (OLAP_AW_PRC), with a CLOB column - AW_XML_TMPL_VAL
    This column contains this xml data - [click here|http://www.nasar.net/aw.xml]
    Now I want to query the data using the xml tags - like returning the name of AW. This is where I am having trouble, how to query the data from AW_XML_TMPL_VAL clob column.
    The following query generates error:
    ORA-31011: XML parsing failed.
    ORA-19202: Error occurred in XML processing
    LPX-00229: input source is empty
    SELECT
    extractValue(value(x), '/AW/LongName') as "AWNAME"
    from
    OLAP_AW_PRC,
    table(xmlsequence(extract (xmltype(AW_XML_TMPL_VAL), '/AWXML/AWXML.content/Create/ActiveObject/AW'))) x
    where
    extractValue(value(x) , '/AW/Name') = 'OMCR4'
    - Nasar

    Mark,
    Thanks. This is exactly what I was looking for.
    After doing @Name in both places (SELECT and WHERE clause) it worked.
    Now I have one more question.
    There are multiple DIMENSION tags in my xml, and I want to see the NAME attribute values for all of those DIMENSIONs. The following query returns
    ORA-19025: EXTRACTVALUE returns value of only one node.
    Cause: Given XPath points to more than one node.
    Action: Rewrite the query so that exactly one node is returned.
    SELECT
    extractValue(value(x), '/AW/@Name') as "AW",
    extractValue(value(x), '/AW/Dimension/@Name') as "DIMENSIONS"
    from
    OLAP_AW_PRC,
    table(xmlsequence(extract (xmltype(AW_XML_TMPL_VAL), '/AWXML/AWXML.content/Create/ActiveObject/AW'))) x
    where
    extractValue(value(x) , '/AW/@Name') = 'OMCR4'

  • Forms 6.0 how to query clob column with oracle 9.2 DB

    hi every body,
    i made install for oracle 9.2 oracle DB every thing goes ok but when i made query in my form version 6.0 which have CLOB column the form closed automatically without any message?
    and just for know when i run the same form with oracle 8.1.7 DB the form made query normally without any problem.
    i want your help please.
    Message was edited by:
    mshaqalaih

    I know there was a problem in 6i where you would get a crash if your query returned more than {Max Length} characters of the field representing the CLOB column.

  • How do you select a clob column in an SQL query report?

    I must be missing something fundamental as there is practically no help on this on the forum.
    All I want to do is ...
    select numcol,aclob_col from table
    in an SQL Query report.
    Sounds easy??? I get no data appearing in the clob column. Doesn't work in SQL Workshop either. What's the catch??
    regards
    Paul P

    Paul,
    It works when I try it. What version of Application Express, what is the table DDL, the exact query, and how much data is in the clob columns?
    Scott

  • Query to find the no of columns in a table

    Is there a query to find the total number of columns in a table?

    Dou you know read?
    -- the number of rows in a table named yourtable:
    select count(1) from yourtable;
    -- the number of columns in a table
    -- If is a user's table:
    select count(1)
    from user_tab_columns
    where table_name='YOURTABLE'
    --If it is´t
    select count(1)
    from DBA_tab_columns
    where owner = 'USEROWNER'
    and table_name='YOURTABLE'

  • How to query a CLOB column

    Hello All,
    I am trying to query a CLOB column with some text string. Can anyone tell me how to do this. Here is a simple example of my code and the error message I get....
    SQL> select title_column from atlas_table where clob_column like '%a%';
    select title_column from atlas_table where clob_column like '%e%'
    ERROR at line 1:
    ORA-00932: inconsistent datatypes
    Thanks,
    Danny

    Selecting a LOB from a table actually returns the LOB's locator and not the entire LOB value..
    and you should have a frontend to retrieve the clob or blob..
    if u have you can view/update/..do DML operations on the column
    null

  • Query to find SQL_ID of statement which causes ORA-1555

    Could you please sent a query to find which SQL_ID/sql stament causes ORA-1555 error.
    Hari

    Look in an AWR report spanning the time frame when it occurred. Number of executions may be blank but the elapsed time will be high.
    You can also find part of the statement and then trace it back.
    http://asktom.oracle.com/pls/asktom/f?p=100:11:1480055079538858::::P11_QUESTION_ID:40115659055475

  • Extract specific value of a Clob column with multiple nodes,similar name

    Hi,
    There is a clob column in the table USER_DETAILS which hold the values similar to the one given below, i would like to form a query which should fetch the entire record where the age<30, as all the child nodes are with similar name i couldn't fetch it out using xmltype.extract. Also the order of the node values may change for eg. age may follow salary or age can be the first node in the list. Please help me to fetch the desired details.
    <Details>
    <parameter>
    <enter>
    <value>name</value>
    <value>jacob</value>
    </enter>
    <enter>
    <value>Age</value>
    <value>30</value>
    </enter>
    <enter>
    <value>Salary</value>
    <value>20000</value>
    </enter>
    <enter>
    <value>DOB</value>
    <value>12091980</value>
    </enter>
    Thanks, gilbert

    Let's start with the easy part.
    Cells on a Numbers table can contain data entered directly, or can contain a formula. They can't contain both. That means you cannot 'type the conditions into a single cell' in column A ("the left header" cell) AND have a formula which sets that cell to TRUE if the typed in data contains an "A".
    There's no problem doing this using column A as the key holder and columns B:Z to hold the TRUE/FALSE results, staring in both cases on row 2.
    Here's an example
    The column header cells (row 1) contain the letter corresponding to that column.
    The row header cells (starting at row 2) contain the 'bunch of letters' you describe. Note (A4) that the letters do not have to be entered in any particular order, and that extraneous characters (eg. a space) are ignored.
    The formula shown is entered B2, and filled down and right from there.
    =IFERROR(FIND(B$1,$A2)>0,FALSE)
    FIND returns the position of the first occurrence of the target string (in this case, the single letter at the top of the column) in the search string, then compares that with the value zero. For any letter that is included in the search string, the find value will be at least 1, so the comparison will return TRUE. If the target letter is not found, FIND returns an error. IFERROR traps this and returns FALSE.
    Since the target depends on the letter at the top of the column, all that's needed to extend the range of possible letters to the full alphabet is to enter an A in cell B1, then run through the alphabet A to Z, with Z in cell AA1.
    Depending what you want to do with the TRUE or FALSE values in these 26 columns, it may be possible to skip the auxiliary column step and use a formula similar to the one above as the condition argument of an IF(condition,do-if-true,do-if-false) statement.
    Regards,
    Barry

  • Setting Line Terminator for a CLOB column by script

    Hello Everyone,
    I have a CLOB column in my table that receives external data (more than 400 sources).
    The GUI application displays it in different ways because of the multiple incoming Line Terminators.
    Here is the weird thing:
    In SQL developper 3.1.06. In the Preferences->Environment I selected as Line Terminator: Carriage Return and Line Fe(Windows)
    Once I committed the changes the data was properly displayed in the application (apparently was also re-coded).
    My Question is:
    How can I setup this property on the column or table to fix the issue??
    (I'm looking for a DDL script or something alike).
    Thanks in advance.
    Mijail O. T.

    914451 wrote:
    If that's the case, What is the SQL DEveloper doing then??
    I tested and looks like is a global parameter, not sure if works only for the table. (That what I need).
    If is possible to setup this feature from the GUI it should be a way to do it running a Script.
    Right????No.
    Tables don't have any concept of "lines".
    CLOB's don't have any concept of "lines".
    "lines" only exist in the context of the data you are providing, but that's not of concern to the database.
    So it looks like, what SQL Developer is doing (I assume as I don't use it), is to have a setting such that when it comes to display character data from VARCHAR2's or CLOB's it determines if there are CR/LF or just LF characters (as per the setting) and then uses those as line terminators for displaying the data in it's own interface. Thus it sounds like an interface specific setting, or to put it bluntly, it's something that is a part of SQL Developer to control how it displays things.
    Have you tried querying back the raw version of the data from the database to see that it still has the CR/LF characters in it? It should.
    I think you'll find the setting is a "display" setting, not a "alter my data" setting.

  • Problem on inserting text from file to a clob column

    Hi! I'm having problem in inserting text read from a text file to a clob column in my table.
    Here's my code
    public void addSyllabusOutline(int syllid)
              CLOB objclob1 = null;
              CLOB objclob2 = null;
              String query = "SELECT outline, projoutline FROM Syllabus WHERE syllabusid = '"+ syllid +"' FOR UPDATE";
              try
                   System.out.print("Getting syllabus outline and projoutline clob locator...");
                   DBConnection dbconnbean = new DBConnection();
                   dbconnbean.openConnection();
                   ResultSet rst = dbconnbean.executeQuery(query);
                   if(rst.next())
                        objclob1 = (oracle.sql.CLOB)rst.getClob("outline");
                        objclob2 = (oracle.sql.CLOB)rst.getClob("projoutline");
                        Writer clobwriter1 = ((oracle.sql.CLOB)objclob1).getCharacterOutputStream();
                        String filename1 = "c:\\o1u2t3l4i5n6e7.txt";
                        File outlinefile1 = new File(filename1);
                        FileReader outlineFileReader1 = new FileReader(outlinefile1);
                        char[] cbuffer1 = new char[10 * 1024];
                        int nread1 = 0;
                        while((nread1 = outlineFileReader1.read(cbuffer1)) != -1)
                             clobwriter1.write(cbuffer1, 0, nread1);
                        //clobwriter1.flush();
                        clobwriter1.close();
                        Writer clobwriter2 = ((oracle.sql.CLOB)objclob2).getCharacterOutputStream();
                        String filename2 = "c:\\p1r2o3j4o5u6t7l8i9n0e.txt";
                        File outlinefile2 = new File(filename2);
                        FileReader outlineFileReader2 = new FileReader(outlinefile2);
                        char[] cbuffer2 = new char[10 * 1024];
                        int nread2 = 0;
                        while((nread2 = outlineFileReader2.read(cbuffer2)) != -1)
                             clobwriter2.write(cbuffer2, 0, nread2);
                        //clobwriter2.flush();
                        clobwriter2.close();
                   System.out.println("done");
                   dbconnbean.closeConnection();
              catch(Exception e)
                   System.out.println("Error: " + e);
    My error is java.sql.SQLException fetch out of sequence. I don't have an Idea on what seems to be the problem. Please help.. Thank you very much. ^_^

    Hi,
    Print the whole stack trace. It will tell you the line which causes the error. How you use clob and blob in oracle is also version dependent. Try to google for
    oracle "your version" java clob example.
    /Kaj

  • Slow delete on a table with one CLOB column

    Hi,
    I have a table which has one CLOB column and even if I delete one row from it, it takes approx. 16 seconds. Since UNDO isn't generated for CLOBs (at least not in the UNDO tablespace), I can't figure out why this is so? The CLOB has defined a RETENTION clause, so it depends upon UNDO_RETENTION which is set to 900. There wasn't any lock from another session present on this table.
    The table currently contains only 6 rows but it used to be bigger in the past, so I thought that maybe a full table scan is going on when deleting. But even if I limit the DELETE statement with an ROWID (to avoid a FTS), it doesn't help:
    SQL> select * from v$version;
    BANNER
    Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production
    PL/SQL Release 11.1.0.6.0 - Production
    CORE    11.1.0.6.0      Production
    TNS for 32-bit Windows: Version 11.1.0.6.0 - Production
    NLSRTL Version 11.1.0.6.0 - Production
    SQL> select count(*) from scott.packet;
      COUNT(*)
             6
    SQL> column segment_name format a30
    SQL> select segment_name
      2    from dba_lobs
      3  where owner = 'SCOTT'
      4     and table_name = 'PACKET';
    SEGMENT_NAME
    SYS_LOB0000081487C00002$$
    SQL>  select segment_name, bytes/1024/1024 MB
      2    from dba_segments
      3  where owner = 'SCOTT'
      4      and segment_name in ('PACKET', 'SYS_LOB0000081487C00002$$');
    SEGMENT_NAME                           MB
    PACKET                               ,4375
    SYS_LOB0000081487C00002$$             576
    SQL> -- packet_xml is the CLOB column
    SQL> select sum(dbms_lob.getlength (packet_xml))/1024/1024 MB from scott.packet;
            MB
    19,8279037
    SQL> column rowid new_value rid
    SQL> select rowid from scott.packet where rownum=1;
    ROWID
    AAAT5PAAEAAEEDHAAN
    SQL> set timing on
    SQL> delete from scott.packet where rowid = '&rid';
    old   1: delete from scott.packet where rowid = '&rid'
    new   1: delete from scott.packet where rowid = 'AAAT5PAAEAAEEDHAAN'
    1 row deleted.
    Elapsed: 00:00:15.64From another session I monitored v$session.event for the session performing the DELETE and the reported wait event was 'db file scattered read'.
    Someone asked Jonathan Lewis a similar looking question (under comment #5) here: http://jonathanlewis.wordpress.com/2007/05/11/lob-sizing/ but unfortunately I couldn't find if he wrote any answer/note about that.
    So if anyone has any suggestion, I'll appreciate it very much.
    Regards,
    Jure

    After reviewing the tkprof as suggested by user503699, I noticed that the DELETE itself is instantaneous. The problem is another statement:
    select /*+ all_rows */ count(1)
    from
    "SCOTT"."MESSAGES" where "PACKET_ID" = :1
    call     count       cpu    elapsed       disk      query    current        rows
    Parse        1      0.00       0.00          0          0          2           0
    Execute      1      0.00       0.00          0          0          0           0
    Fetch        1      1.40      16.93     125012     125128          0           1
    total        3      1.40      16.93     125012     125128          2           1
    Misses in library cache during parse: 1
    Misses in library cache during execute: 1
    Optimizer mode: ALL_ROWS
    Parsing user id: SYS   (recursive depth: 1)
    Rows     Row Source Operation
          1  SORT AGGREGATE (cr=125128 pr=125012 pw=125012 time=0 us)
          0   TABLE ACCESS FULL MESSAGES (cr=125128 pr=125012 pw=125012 time=0 us cost=32900 size=23056 card=5764)I checked if there was any "ON DELETE" trigger and since there wasn't, I suspected this might be a problem of unindexed foreign keys. As soon as I created an index on SCOTT.MESSAGES.PACKET_ID the DELETE executed immediately. The "funny" thing is that, the table SCOTT.MESSAGES is empty, but it has allocated 984MB of extents (since it wasn't truncated), so a time consuming full tablescan was occurring on it.
    Thanks for pointing me to the 10046 trace which solved the problem.
    Regards,
    Jure

Maybe you are looking for