Problems in using CLOB field

I am trying to use a clob field in a select statment and I am getting "Ora-00932: inconsistent datatypes" error.
I am using Oracle 817.
Any idea or fix?

The reason your statement throws an error is because
of the DISTINCT, not because of joins. Oracle can
only do distinct on basic data types (CHAR, VARCHAR2,
NUMBER and DATE). It tries to do an implicit
conversion from CLOB to VARCHAR to do the DISTINCT.
CLOBS over 4000 characters cannot be converted to
VARCHAR2. So, even without any joins ...Agreed ... but my DISTINCT wasn't on the CLOB. It was on a VARCHAR2. Let me restate (hopefully a little more clearly) what I was referring too to see if you can think of any ways to do what I'm trying to do. The first example I know will work provided the CLOB doesn't contain over 4000 characters. The 2nd example (the same as the example originally mentioned) will not work. I'm wanting to do something like the 2nd example but with the same results as the first.
EX #1: (will work)
SELECT
DISTINCT table1.varcharField1,
table1.varcharField2,
table2.varcharField3,
DBMS_LOB.SUBSTR(table1.CLOBField4,DBMS_LOB.GETLENGTH(table1.CLOBField4)),
table3.varcharField5
FROM
table1,
table2,
table3
WHERE
table1.varcharField1 = table2.varcharField1
AND table1.varcharField1 = table3.varcharField1
AND table1.varcharField2 = 'XYZ'
EX #2: (will not work)
SELECT
DISTINCT table1.varcharField1,
table1.varcharField2,
table2.varcharField3,
table1.CLOBField4,
table3.varcharField5
FROM
table1,
table2,
table3
WHERE
table1.varcharField1 = table2.varcharField1
AND table1.varcharField1 = table3.varcharField1
AND table1.varcharField2 = 'XYZ'
This is SQL for a report so the entire contents of the CLOB field are required. (In actuality, the dbase column should have originally been defined as a VARCHAR2. Since we already have other programs in place that hit these table fields, we can't arbitrarily go back and change it.) If we leave the first SQL example in place, it'll work but it'll cause the SQL to crash if the data in that field ever exceeds 4000 characters. That's why we're trying to do away with the DBMS_LOB.SUBSTR() method. BUT if we don't interpret the CLOB in some other fashion, it'll throw the ORA-00932 error because of a data inconsistencies.
Any advice you could offer would certainly be appreciated.
BJ

Similar Messages

  • Problem in using CLOB Data from a Data and exporting into File

    Hi,
    UTL_FILE Error Occured while using UTL_FILE with CLOB Data.
    UTL_FILE: A write error occurred.
    The Below Code is for reference:
    DECLARE
    C_AMOUNT CONSTANT BINARY_INTEGER := 32767;
    L_BUFFER VARCHAR2(32767);
    L_CHR10 PLS_INTEGER;
    L_CLOBLEN PLS_INTEGER;
    L_FHANDLER UTL_FILE.FILE_TYPE;
    L_POS PLS_INTEGER := 1;
    BEGIN
         FILE_NAME:=UTL_FILE.FOPEN('EXPORT_DIR','EXPORT_FILE'||'.sql','W');
         FOR C1_EXP IN (SELECT INSERT_STRING FROM EXPORTED_DUMP) LOOP
         L_CLOBLEN := DBMS_LOB.GETLENGTH(C1_EXP.INSERT_STRING);
         DBMS_OUTPUT.PUT_LINE('THE CLOB LEN '||L_CLOBLEN);
         DBMS_OUTPUT.PUT_LINE('THE POSITION '||L_POS);
         WHILE L_POS < L_CLOBLEN LOOP
    L_BUFFER := DBMS_LOB.SUBSTR(C1_EXP.INSERT_STRING, C_AMOUNT, L_POS);
         DBMS_OUTPUT.PUT_LINE('THE BUFFER IS '||L_BUFFER);
    EXIT WHEN L_BUFFER IS NULL;
    UTL_FILE.PUT_LINE(FILE_NAME, C1_EXP.INSERT_STRING);
    L_POS := L_POS + LEAST(LENGTH(L_BUFFER)+1,c_amount);
    END LOOP;
         END LOOP;
    UTL_FILE.FCLOSE(FILE_NAME);
    EXCEPTION
    WHEN UTL_FILE.INTERNAL_ERROR THEN
    DBMS_OUTPUT.PUT_LINE ('UTL_FILE: An internal error occurred.');
    UTL_FILE.FCLOSE_ALL;
    WHEN UTL_FILE.INVALID_FILEHANDLE THEN
    DBMS_OUTPUT.PUT_LINE ('UTL_FILE: The file handle was invalid.');
    UTL_FILE.FCLOSE_ALL;
    WHEN UTL_FILE.INVALID_MODE THEN
    DBMS_OUTPUT.PUT_LINE ('UTL_FILE: An invalid open mode was given.');
    UTL_FILE.FCLOSE_ALL;
    WHEN UTL_FILE.INVALID_OPERATION THEN
    DBMS_OUTPUT.PUT_LINE ('UTL_FILE: An invalid operation was attempted.');
    UTL_FILE.FCLOSE_ALL;
    WHEN UTL_FILE.INVALID_PATH THEN
    DBMS_OUTPUT.PUT_LINE ('UTL_FILE: An invalid path was give for the file.');
    UTL_FILE.FCLOSE_ALL;
    WHEN UTL_FILE.READ_ERROR THEN
    DBMS_OUTPUT.PUT_LINE ('UTL_FILE: A read error occurred.');
    UTL_FILE.FCLOSE_ALL;
    WHEN UTL_FILE.WRITE_ERROR THEN
    DBMS_OUTPUT.PUT_LINE ('UTL_FILE: A write error occurred.');
    UTL_FILE.FCLOSE_ALL;
    WHEN OTHERS THEN
    DBMS_OUTPUT.PUT_LINE ('Some other error occurred.');
    UTL_FILE.FCLOSE_ALL;
    END;

    Hi user598986!
    OK, I understood that there is a problem with your code. But please would you be so kindly to tell us here what error exactly happens (the errormessage). Mabay after that someone will be able to help you.
    yours sincerely
    Florian W.
    P.S. If you enclose your code into tags it will be shown formated.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

  • Problem in using Currency Field in EXTRACTOR

    hello,
            I have a requirement to create Extractor involving some fields from a Ztable.
    While creating extractor (data source) in RSO2 transaction, when i enter the Z table name in "Extraction from DB view - View/Table" and click on SAVE, i get an error msg " Invalid extract structure template ZTABLE of DataSource Zextractor".
    But if i remove the only currency field in the ztable and then try using the ztable for extractor, its working fine. I dunno why? but i need the currency field in the extractor. Kindly let me know how to deal with this issue. Sure points for useful answers.
    thx,
    BaLaJi.......

    hi,
    for currency fields and decimal fields u should provide reference for them. give currency field in fields section -> click on refernce -> give
    currency field name table name refernce key name table name -> save n activate.
    if helpful reward some points.
    with regards,
    Suresh.A

  • Error when using CLOB

    Problem While using CLOB/BLOB datatype:
    We have created a directory in E drive and created a directory alias in oracle.
    to read the data from CLOB data type we have to write a PL/SQL code.
    But i am getting an errorin the block .ie non existent directory or file....
    ORA-22285: non-existent directory or file for FILEOPEN operation
    ORA-06512: at "SYS.DBMS_LOB", line 475
    ORA-06512: at line 8
    but the directory and file is there with all permissions.
    null

    Hi,
    Your buffer size should be the clob size.
    char[] buffer = new char[c_lob.getBufferSize()];
    Also, set the value for i as -1.
    You could see the sample on OTN for help:
    http://www.oracle.com/technology/sample_code/tech/java/sqlj_jdbc/files/advanced/LOBSample/Readme.html
    Thanks,
    Rashmi

  • Query filter using a converted CLOB field

    Hi,
    I need to filter a query by a CLOB field on the database. When I just select the filed, the query runs successfully. But, when I try to filter by this CLOB field, converting it to Date or Char, I got an error message. I detail it step by step below.
    Please, can somebody help me to figure out what is happening with this filter?
    DB Version: Oracle Database 11g Enterprise Edition Release 11.1.0.7.0
    Step 1- The Query works fine
    SELECT TO_CHAR( CLOB_FIELD ) FIELD_CLOB_TO_CHAR1,
    TO_CHAR(TO_DATE(TO_CHAR( CLOB_FIELD ), 'mm/dd/yyyy', 'NLS_DATE_LANGUAGE=PORTUGUESE'), 'dd/mm/yyyy') FIELD_CLOB_TO_CHAR2,
    TO_CHAR(sysdate, 'dd/mm/yyyy', 'NLS_DATE_LANGUAGE=PORTUGUESE') SYSDATE_DATE_TO_CHAR,
    TO_DATE(TO_CHAR( CLOB_FIELD ), 'mm/dd/yyyy') FIELD_CLOB_TO_DATE1,
    TO_DATE( CLOB_FIELD, 'mm/dd/yyyy') FIELD_CLOB_TO_DATE2
    FROM MY_TABLE
    FIELD_CLOB_TO_CHAR1: 08/10/2012     
    FIELD_CLOB_TO_CHAR2: 10/08/2012
    SYSDATE_DATE_TO_CHAR: 23/07/2012
    FIELD_CLOB_TO_DATE1: 10/08/2012
    FIELD_CLOB_TO_DATE2: 10/08/2012
    Step 2- Adding one of the filters below. I got the same error message for them:
    and TO_DATE( CLOB_FIELD, 'mm/dd/yyyy') = to_date(to_char(sysdate,'mm/dd/yyyy'), 'mm/dd/yyyy');
    and TO_CHAR(TO_DATE(TO_CHAR( CLOB_FIELD ), 'mm/dd/yyyy', 'NLS_DATE_LANGUAGE=PORTUGUESE'), 'dd/mm/yyyy') = to_char(sysdate,'mm/dd/yyyy');
    Report Error:
    SQL Error: ORA-01858: a non-numeric character was found where a numeric was expected
    01858. 00000 - "a non-numeric character was found where a numeric was expected"
    *Cause:    The input data to be converted using a date format model was
    incorrect. The input data did not contain a number where a number was
    required by the format model.
    *Action:   Fix the input data or the date format model to make sure the
    elements match in number and type. Then retry the operation.
    Regards,

    user634269 wrote:
    Keith, thanks again.
    It works fine. I just changed the exception return to show more clearly in which record the problem is. I did:
    when others
    then
    v_returndate := SYSDATE+3000;
    But, I still have some doubts and I believe they are related:
    1- The dates on CLOB_FIELD are recorded in "mm/dd/yyyy" format. So, when something like 08/09/2011 is found, the things work fine. But, when something like 12/20/2011 is found, I got the problem. I always believed that formatting dates would solve this kind of situation.
    2- The function you suggested only converts a varchar parameter into a date value. (simple and clever). I changed the filter from "= sysdate" to "<= sysdate" and got 5 records only. It worked fine. But, considering that the function only applies TO_DATE() on a varchar parameter, why can I do this:
    MY_TO_DATE( CLOB_FIELD, 'mm/dd/yyyy') <= to_date(to_char(sysdate,'mm/dd/yyyy'), 'mm/dd/yyyy');
    and cannot one of these?
    TO_DATE( CLOB_FIELD, 'mm/dd/yyyy') <= to_date(to_char(sysdate,'mm/dd/yyyy'), 'mm/dd/yyyy');
    TO_DATE( to_char(CLOB_FIELD), 'mm/dd/yyyy') <= to_date(to_char(sysdate,'mm/dd/yyyy'), 'mm/dd/yyyy')
    3- The first function parameter is VARCHAR, but I'm sending the CLOB_FIELD without any conversion. Does Oracle perform an implicit data conversion?
    I really would like to understand how Oracle is working with all these things.
    Regards.
    >Keith, thanks again.
    It works fine. I just changed the exception return to show more clearly in which record the problem is. I did:
    when others
    then
    v_returndate := SYSDATE+3000;
    But, I still have some doubts and I believe they are related:
    1- The dates on CLOB_FIELD are recorded in "mm/dd/yyyy" format. So, when something like 08/09/2011 is found, the things work fine. But, when something like 12/20/2011 is found, I got the problem. I always believed that formatting dates would solve this kind of situation.
    You must use the format mask which matches the format of data. Your date data is in the format mm/dd/yyyy and so you need to provide that format mask.
    to_date('12/20/2011','mm/dd/yyyy') will cause the data to be correctly converted to a date
    2- The function you suggested only converts a varchar parameter into a date value. (simple and clever). I changed the filter from "= sysdate" to "<= sysdate" and got 5 records only. It worked fine. But, considering that the function only applies TO_DATE() on a varchar parameter, why can I do this:
    MY_TO_DATE( CLOB_FIELD, 'mm/dd/yyyy') <= to_date(to_char(sysdate,'mm/dd/yyyy'), 'mm/dd/yyyy');
    This works because although the implicit conversion fails,  my function suppresses any error that is raised using the following exception block
    exception
    when others
    then
        null;
    and cannot one of these?
    TO_DATE( CLOB_FIELD, 'mm/dd/yyyy') <= to_date(to_char(sysdate,'mm/dd/yyyy'), 'mm/dd/yyyy');
    TO_DATE( to_char(CLOB_FIELD), 'mm/dd/yyyy') <= to_date(to_char(sysdate,'mm/dd/yyyy'), 'mm/dd/yyyy')
    These do not work , because you are using the inbuilt functions which are raising errors.
    if you change
    when others
    then
    null; to
    when others
    then
    raise; my function will no longer work. You should read the FAQ on exception handling. When others then null is used to suppress any error that is raised. This is not normally good practice.
    3- The first function parameter is VARCHAR, but I'm sending the CLOB_FIELD without any conversion. Does Oracle perform an implicit data conversion?
    Yes, oracle will try to do an implicit conversion whenever no  explicit conversion is specified.  You should always try to use explicit conversions rather than rely on implicit conversions.
    >
    I really would like to understand how Oracle is working with all these things.
    A good start would be to read and understand the frequently asked questions provided by Blueshadow.
    This is also a bad construct:
    <= to_date(to_char(sysdate,'mm/dd/yyyy'), 'mm/dd/yyyy')
    all you need here is sysdate. If you want to remove the time element, you can just use trunc(sysdate)

  • Problems While Working With CLOB fields

    HI Friends,
    I am facing one big problem while working with CLOB fields. I work in crystal reports in my project and My team is works in BMC Remedy tool. As per database configuration by default the date fields are stored in numbers. There is a field named Work Log which stores the complete history information of a ticket or a call.
    While generating reports I convert the date fields from numbers into date values by using to_date function. But I am not able to change the dates mentioned in the worklog which is a CLOB field. As a result when I am generating reports text part of the work log is comming fine but the date fields are comming in numbers.
    Please refer the below example:-
    *1291012455anilkumarptesting*
    Full Name:
    PRG Name - EUC-APP PKGN1291012585anilkumarptesting
    Full Name:
    PRG Name - EUC-APP PKGN1291012631anilkumarptest
    Full Name:
    PRG Name - EUC-APP PKGN1291207510anilkumarpfd
    Full Name: Anil Kumar Pantangi
    PRG Name - Prod_Ops1291207535anilkumarpf
    Full Name: Anil Kumar Pantangi
    PRG Name - Prod_Ops
    Assignment notification disabled for this transaction1291212517kapilbasd
    Full Name: Anil Kumar Pantangi
    PRG Name - Prod_Ops
    See the first line of the worklog "1291012455anilkumarptesting", 1291012455 is referring a date value, but due to database configuration it's comming in number. All the other numbers in the above text are dates only which need's to be converted. These dates are captured in remedy tool when someone updates that ticket.
    I am not able to decide how to change this numbers into dates. As it is containing lot's of numbers i am really confused how to come with a solution.
    Can I expect a solution from you, atleast a way how to proceed resolving this problem. Should I have to write a procedure for this??
    Please help..........
    Kindly let me know if you need any more input.
    Regards,
    Arijit

    937670 wrote:
    1291012455 represents a date value,What date value does it represent? Since it's not obvious to us what date you want that converted into, it's obviously hard for us to help. For example, perhaps you want that to be Jan 29, 2010 with "12455" representing a time component in some non-obvious format. Perhaps you want that to be December 1991 at 1:24:55. Perhaps you want to convert it to a completely different date. You're going to need to tell us in words how to convert your numeric data into a date.
    My question is how can I convert all the numbers into date in the CLOB field and present it in a proper manner.Given your sample data, what do you expect the output to be? Do you expect many rows of data, one for every date in the CLOB? Do you expect a comma-separated list? Something else?
    Justin

  • Using Oracle Text with CLOB field containing multiple languages

    I'm using Oracle 10g (NLS_CHARACTERSET is set to. AL32UTF8) and have a table with a CLOB field which is storing text written in either English and/or Simplified Chinese.
    The following index has been created on this field:
    CREATE INDEX text_index
    ON text_table(text_field)
    INDEXTYPE IS CTXSYS.CONTEXT
    PARAMETERS('FILTER CTXSYS.INSO_FILTER');
    I'm having issues in returning text which matches the Chinese text using the CONTAINS operator. For some reason the following query is returning rows which do not contain any Chinese text:
    SELECT *
    FROM text_table
    WHERE contains(text_field,'炫%') > 1;
    A newsgroup user advised me to produce an explain plan using ctx_query.explain.
    I created 2 explain plans, one which was searching the index for 'A%' and the other searching for the Simplified Chinese character '炫%'. The results for the first test were as expected whereby the values contained within the OBJECT_NAME field all began with the letter 'A'.
    The second test however produced somewhat unexpected results. The OBJECT_NAME field this time contained various words, both English and Simplified Chinese. I could be wrong but it appeared to store every individual word in the CLOB field. Both tests produced different EQUIVALENCE rows, the first test was:
    OPTIONS = Null
    OBJECT_NAME = A%
    Whereas the second test produced:
    OPTIONS = (?)
    OBJECT_NAME = %
    Am I right in thinking the Simplified Chinese character is for some reason being converted to a '?' character?
    Any help on this will be much appreciated.

    As you're not specifying a lexer to use, it will use the BASIC_LEXER, designed for space-separated European-type languages. This won't work effectively with Chinese.
    If you know which documents are Chinese and which are English, you can write this into a LANGUAGE column and use the MULTI_LEXER - this will allow you to specify BASIC_LEXER for the English texts, and CHINESE_LEXER or CHINESE_VGRAM_LEXER for the Chinese texts.
    If you don't know the language, you must use either WORLD_LEXER (10g) or AUTO_LEXER (11g). These lexers will automatically determine the language of the documents and index them appropriately. In general. MULTI_LEXER will be faster and more accurate than either of the automatic alternatives.
    When querying for Chinese characters you need to be very careful with your NLS_LANG settings. You need to make sure that the character set defined in NLS_LANG is the same as the character set from which you've pasted (or typed) the chinese characters.
    The "?" in output usually just means "I don't know how to translate this character into your output character set". Sometimes it may appear as a reversed question mark.

  • Getting table script using dbms_metadata.get_ddl, but with clob field

    So, Oracle 11g R2..
    I'm using dbms_metadata.get_ddl to get table scripts and it's working fine..
    now, I have a table with clob field, and it's not working... I got an 'missing right parenthesis (ora-0907)' error...
    I could paste a script that I got, but I don't think it makes any sense..
    does anybody have some experience on using this package on clob tables?
    tnx

    this is script that I got... it's long, and it looks like it's not good
    CREATE TABLE "COMMON"."TEST_AAA2"
       (    "ID" NUMBER(10,0),
        "TEKST" VARCHAR2(200 CHAR),
        "UPDATESTAMP" DATE,
        "OBJEKAT" CLOB,
         CONSTRAINT "TEST_PART_PK2" PRIMARY KEY ("ID")
      USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
      STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
      PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
      TABLESPACE "USERS"
      ALTER INDEX "COMMON"."TEST_PART_PK2"  UNUSABLE ENABLE
       ) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS  LOGGING
      STORAGE(
      BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
      TABLESPACE "COMMON_DATA"
    LOB ("OBJEKAT") STORE AS BASICFILE (
      ENABLE STORAGE IN ROW CHUNK 8192 RETENTION
      NOCACHE LOGGING
      STORAGE(
      BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT))
      PARTITION BY RANGE ("UPDATESTAMP")
    (PARTITION "P_201012"  VALUES LESS THAN (TO_DATE(' 2011-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
      PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
      STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
      PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
      TABLESPACE "COMMON_DATA"
    LOB ("OBJEKAT") STORE AS BASICFILE (
      TABLESPACE "USERS" ENABLE STORAGE IN ROW CHUNK 8192 PCTVERSION 10
      NOCACHE LOGGING
      STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
      PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) NOCOMPRESS ,
    PARTITION "P_201101"  VALUES LESS THAN (TO_DATE(' 2011-02-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
      PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
      STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
      PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
      TABLESPACE "COMMON_DATA"
    LOB ("OBJEKAT") STORE AS BASICFILE (
      TABLESPACE "USERS" ENABLE STORAGE IN ROW CHUNK 8192 PCTVERSION 10
      NOCACHE LOGGING
      STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
      PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) NOCOMPRESS ,
    PARTITION "P_201102"  VALUES LESS THAN (TO_DATE(' 2011-03-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
      PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
      STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
      PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
      TABLESPACE "COMMON_ARCHIVE"
    LOB ("OBJEKAT") STORE AS BASICFILE (
      TABLESPACE "COMMON_ARCHIVE" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION
      NOCACHE LOGGING
      STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
      PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) NOCOMPRESS ,
    PARTITION "P_201103"  VALUES LESS THAN (TO_DATE(' 2011-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
      PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
      STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
      PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
      TABLESPACE "COMMON_DATA"
    LOB ("OBJEKAT") STORE AS BASICFILE (
      TABLESPACE "USERS" ENABLE STORAGE IN ROW CHUNK 8192 PCTVERSION 10
      NOCACHE LOGGING
      STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
      PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) NOCOMPRESS ,
    PARTITION "P_201104"  VALUES LESS THAN (TO_DATE(' 2011-05-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
      PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
      STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
      PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
      TABLESPACE "COMMON_ARCHIVE"
    LOB ("OBJEKAT") STORE AS BASICFILE (
      TABLESPACE "COMMON_ARCHIVE" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION
      NOCACHE LOGGING
      STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
      PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) NOCOMPRESS ,
    PARTITION "P_201105"  VALUES LESS THAN (TO_DATE(' 2011-06-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
      PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
      STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
      PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
      TABLESPACE "COMMON_DATA"
    LOB ("OBJEKAT") STORE AS BASICFILE (
      TABLESPACE "USERS" ENABLE STORAGE IN ROW CHUNK 8192 PCTVERSION 10
      NOCACHE LOGGING
      STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
      PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) NOCOMPRESS ,
    PARTITION "P_201106"  VALUES LESS THAN (TO_DATE(' 2011-07-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
      PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
      STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
      PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
      TABLESPACE "COMMON_ARCHIVE"
    LOB ("OBJEKAT") STORE AS BASICFILE (
      TABLESPACE "COMMON_ARCHIVE" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION
      NOCACHE LOGGING
      STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
      PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) NOCOMPRESS ,
    PARTITION "P_201107"  VALUES LESS THAN (TO_DATE(' 2011-08-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
      PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
      STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
      PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
      TABLESPACE "COMMON_DATA"
    LOB ("OBJEKAT") STORE AS BASICFILE (
      TABLESPACE "COMMON_ARCHIVE" ENABLE STORAGE IN ROW CHUNK 8192 PCTVERSION 10
      NOCACHE LOGGING
      STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
      PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) NOCOMPRESS ,
    PARTITION "P_MAXVALUE"  VALUES LESS THAN (MAXVALUE)
      PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
      STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
      PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
      TABLESPACE "COMMON_DATA"
    LOB ("OBJEKAT") STORE AS BASICFILE (
      TABLESPACE "COMMON_ARCHIVE" ENABLE STORAGE IN ROW CHUNK 8192 PCTVERSION 10
      NOCACHE LOGGING
      STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
      PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) NOCOMPRESS )

  • Empty CLOB field value from Oracle database using JDBC Sender

    Hi All,
    I am selecting a CLOB field from Oracle database table using JDBC Sender adapter and getting error "NullPointerException"
    Seen SAP note 1283089 but its not applicable for my support pack PI 7.0 SP 12 and client dont want to upgrdate SP 17 right now.
    I tried rpad(1,0)Column_Name funciton in JDBC select query but it selcting blank value for every record even those having some value for this CLOB field so not useful
    Could anybody suggest possible way? client dont want to change anything at database side.
    Thanks,
    Dharamveer

    What is the Oracle driver version installed? You might need to install 10.x driver if not already using it.

  • Inserting to a clob field using cx_Oracle via a stored procedure

    Hello,
    Does anyone have experience using cx_Oracle to call a stored procedure which inserts to a clob field? I have found examples of doing this via straight SQL but I was hoping it was possible to do this via a stored procedure call. Thanks for any help you can provide.
    Jason

    And cursor.callproc('insert_clob_proc', (clob,))
    doesn't work for you?
    PrzemekYes - I should have been more clear in my original post. The callproc function works until we have a value which is over 32K. At values over 32K, we get an error message "ORA-01460: unimplemented or unreasonable conversion requested". I believe this is because we are sending the value as a string and so we would need to figure out how to send as a CLOB in cx_Oracle? Here is some code to use to test if interested...
    Oracle (Oracle Database 10g Release 10.1.0.4.0 - Production):
    CREATE TABLE clob_test (CLOB_FIELD CLOB);
    CREATE OR REPLACE PROCEDURE ins_clob_test (v_clob_field IN CLOB)
    AS
    BEGIN
    INSERT INTO clob_test (clob_field) VALUES (v_clob_field);
    END ins_clob_test;
    Python (2.5):
    conn = cx_Oracle.connect(xhash['oraclelogin'])
    cursor = conn.cursor()
    clob_var = 'Some test data' * 10000
    cursor.callproc('ins_clob_test',(clob_var,))
    conn.commit()
    cursor.close()
    conn.close()
    I should also mention that I am the Oracle developer and not the Python programmer - my knowledge of Python is very limited. I would like the Python programmers to use the procedures (packages) I have created to do their inserts but this situation has caused them to put the SQL directly in their code.
    Thanks again for any assistance you can provide.
    Jason

  • Problem inserting a clob using bpel and database adapter

    We are having issues inserting a clob field into the database when the data is over 4000 characters. Anything under 4000 characters works fine.
    The error we are seeing is "Error while converting to a Java struct object. Unable to convert XSD element P_RESPONSE_ARRAY_ITEM whole user defined type is QC_CRCBT_PKG_RESPONSE_TYPE. Cause: java.lang.ClassCastException: oracle.sql.CLOB; nested exception is: ORABPEL-11802"
    We are using BPEL 10.1.3.3 and a database adapter. THE PL/SQL parameter decomposes to a clob type. Again, anything under 4000 characters works fine.
    Any ideas?

    This is likely due to Bug-6629539, which has just been identified and fixed in 11. You can request a one-off patch for this bug (i.e. a BLR off of the 10.1.3.3.0 release label).

  • How to retrieve and use an XSL file from CLOB field

    I am using Java to query my data and return XML formatted data. I am able to format this data using an XSLStylesheet file. But I want to instead use an XSL Stylesheet stored in a clob field.
    I have an XSL file stored in a clob field. How can I retrieve and use it to initialize an XMLDocument and then create an XSLStylesheet.
    Thanks for your help,
    Les Smith

    I think this question has been raised before. Try searching this forum.

  • How to parse/extract XML from clob field using ODI

    Hi,
    I am very new to ODI. I have an oracle table which has clob field. This clob field contains xml. I would like to parse this xml and convert it to oracle table. Means I would like to make all the tags of xml as oracle table columns.
    I have created a PL/SQL procedure and used XMLTABLE function and I have achieved my goal. The same this I am trying to do with ODI. Since I am new to ODI so any help is appreciated.
    Thanks

    In 9.2, you are limited into your options. Have a look into, among others, updateXML. Updating tp 10gR2 will give you more options to succeed.

  • Export XML data from a CLOB field using sql developer

    I have a table that contains a CLOB field, each record is a complete XML in itself. After running the select query i am exporting this data by right clicking on the answer set, while the export completes the data for each record gets truncated.
    When i chose to save the export in loader format i get the complete records but now there are n files created for n records exported.
    Is there a way i can get alll the records in a single file wirthout any truncation.
    Thanks in advance!

    You might try delimited format or csv, with no enclosures if desired.

  • BC4J: Problem deleting a row with clob field

    When I try to delete a row that contains a CLOB field.
    When I call the function removeCurrentRow in my View object I get this exception:
    JBO-25014: Another user has changed the row with primary key oracle.jbo.Key
    Could anyone tell me why I can't remove the row? Thanks in advance!
    null

    This looks like a bug in TreeBinding. Please file this as a bug/tar with OracleSupport with your reproducible testcase (or steps to reproduce). Thanks.

Maybe you are looking for