Select on LONG column

Hi there,
How can I query USER_CONSTRAINTS table in order to get all rows with SEARCH_CONDITION like 'SomeThing%'. SEARCH_CONDITION is a LONG.

Another possibility is to create a temporary table with the SEARCH_CONDITION converted to a VARCHAR2 or, if you think that the string can be more than 4000 characters, to a LOB. See example below for converting it to a LOB.
SQL> create table my_constraints
  2    (owner varchar2 (30), constraint_name varchar2 (30), search_condition clob) ;
Table créée.
SQL> insert into my_constraints (owner, constraint_name, search_condition)
  2  select owner, constraint_name, to_lob (search_condition)
  3  from user_constraints ;
38 ligne(s) créée(s).
SQL> select owner, constraint_name
  2  from my_constraints
  3  where dbms_lob.instr (search_condition, 'NULL') > 0 ;
OWNER                          CONSTRAINT_NAME
JRK                            SYS_C0013185
JRK                            SYS_C0013186
JRK                            SYS_C0013187
JRK                            SYS_C0013188
JRK                            SYS_C0013687
JRK                            SYS_C0013678
JRK                            SYS_C0013679
JRK                            SYS_C0013680
JRK                            SYS_C0013668
JRK                            SYS_C0013673
JRK                            SYS_C0013674
JRK                            SYS_C0013667
JRK                            SYS_C0013684
JRK                            SYS_C0013685
JRK                            SYS_C0013686
JRK                            SYS_C0013440
JRK                            SYS_C0013441
JRK                            SYS_C0013675
JRK                            SYS_C0013442
JRK                            SYS_C0013443
20 ligne(s) sélectionnée(s).

Similar Messages

  • Select LONG column from Remote table

    Hi to all.
    I have the following problem: I can't select a LONG column from remote database, when there are Join operation in the query. Example:
    SELECT long_column FROM remote_table@DB
    -> that's OK, but:
    SELECT long_column FROM remote_table@DB INNER JOIN remote_table2@DB ON ...
    -> returns: "ORA-00997: Illegal use of LONG datatype"
    I cannot even perform (because there a LONG column in the joined table):
    SELECT nonlong_column FROM remote_table@DB INNER JOIN remote_table2@DB ON ...
    That's very strange to me because:
    SELECT long_column FROM local_table INNER JOIN local_table2 ON ...
    -> is OK!
    Can someone help me to SELECT a long column from remote in SELECT query with JOIN clause!
    Thanks a lot!

    Hi
    "Distributed queries are currently subject to the restriction that all tables locked by a FOR UPDATE clause and all tables with LONG columns selected by the query must be located on the same database. " by otn docs.
    I have no idea.
    Ott Karesz
    http://www.trendo-kft.hu

  • Selecting data from a table which has a LONG column

    hi all,
    In the table user_views there is a LONG column. Now i want to select rows from that table based on this LONG column. like....
    select *from user_views where text like '%account%;
    but i am getting the error.."ORA-00932: Inconsistent datatypes:Expected NUMBER got LONG".
    How do I overcome this error.
    Please give me some suggestions.
    Thanks & Regards,
    Vijay

    In the table user_views there is a LONG column. Now i want to select rows from that >table based on this LONG column. like....LONG columns cannot appear in a WHERE or
    AND clause.

  • Select LONG column into CLOB variable

    Hi all,
    I am trying retrieve the data present in a LONG column into a CLOB variable.
    However I am getting an error, pls let me know how I can resolve it.
    DECLARE
    v_text CLOB;
    BEGIN
    SELECT TO_LOB(trigger_body)
    INTO v_text
    FROM
    user_triggers
    WHERE
    ROWNUM <= 1;
    END;
    ERROR at line 8:
    ORA-06550: line 8, column 20:
    PL/SQL: ORA-00932: inconsistent datatypes: expected NUMBER got LONG
    ORA-06550: line 8, column 5:
    PL/SQL: SQL Statement ignored
    Let me know if there is an alternate to this. I would like to get the data present in the LONG column into a variable.
    The reason why I am not retrieving the LONG column into LONG variable is stated below (from Oracle Website):
    You can insert any LONG value into a LONG database column because the maximum width of a LONG column is 2**31 bytes.
    However, you cannot retrieve a value longer than 32760 bytes from a LONG column into a LONG variable.
    Thanks and Regards,
    Somu

    There are couple of things I did (listed in order):
    1) Create Global Temporary Table containing a CLOB column
    2) Select LONG column and convert to CLOB by using TO_LOB and insert into Global Temporary Table containing a CLOB column
    2) Select from this Global Temporary Table (which already contains data in CLOB) and assign it to a CLOB variable.
    This is done because you can not directly use TO_LOB in a select statement to assign the value to a CLOB variable.
    Stated below is an example:
    -- Create Temporary Table
    CREATE GLOBAL TEMPORARY TABLE glb_tmp_table_lob(
    time TIMESTAMP WITH LOCAL TIME ZONE,
    text CLOB
    ON COMMIT DELETE ROWS;
    -- PL/SQL Block to Execute
    DECLARE
    v_clob CLOB;
    BEGIN
    -- Insert into Temporary Table by converting LONG into CLOB
    INSERT INTO glb_tmp_table_lob (
    time ,
    text
    SELECT
    sysdate ,
    TO_LOB(dv.text)
    FROM
    dba_views dv
    WHERE
    ROWNUM <= 1
    -- Select from the Temporary table into the variable
    SELECT
    gt.text
    INTO
    v_clob
    FROM
    glb_tmp_table_lob gt;
    COMMIT;
    -- Now you can use the CLOB variable as per your needs.
    END;
    /

  • How to select for insert a long column through database link?

    How may a long column (for example a sql server 2000 text column) be selected for insert into a clob column in table in 10g over a database link without invoking ora-00997?
    I've tried using dbms_metadata_util.long2clob without success over a database link.

    Is the remote database an Oracle database? Or are you selecting data from SQL Server 2000 over a database link via Heterogeneous Services? What is the data type of the column in the remote database (LONG? TEXT? Something else?)?
    Justin

  • How to Copy a Long Column in PL/SQL

    Hello. Can anyone tell me how to copy a table that contains a long column? I am using Oracle 8.0.5 SQL Worksheet
    with the following code that generates an ORA-06502: PL/SQL: numeric or value error.
    CREATE TABLE "Tmp_CB_REPORT"
         CB_RPT_ID NUMBER(38, 0),
         CB_ID NUMBER(38, 0),
         CB_REGION_ID NUMBER(38, 0),
         WHEN_PULLED DATE NOT NULL,
         PARSED NUMBER(1, 0) DEFAULT (0) NOT NULL,
         RAW_DATA LONG NOT NULL,
         JOINT NUMBER(1, 0) DEFAULT (0) NOT NULL,
         RPTTYPE NUMBER(38, 0) NOT NULL,
         OPTION1 NUMBER(1, 0) DEFAULT (0) NOT NULL,
         OPTION2 NUMBER(1, 0) DEFAULT (0) NOT NULL,
         OPTION3 NUMBER(1, 0) DEFAULT (0) NOT NULL,
         OPTION4 NUMBER(1, 0) DEFAULT (0) NOT NULL,
         OPTION5 NUMBER(1, 0) DEFAULT (0) NOT NULL,
         OPTION6 NUMBER(1, 0) DEFAULT (0) NOT NULL,
         OPTION7 NUMBER(1, 0) DEFAULT (0) NOT NULL,
         OPTION8 NUMBER(1, 0) DEFAULT (0) NOT NULL,
         OPTION9 NUMBER(1, 0) DEFAULT (0) NOT NULL,
         OPTION10 NUMBER(1, 0) DEFAULT (0) NOT NULL,
         OPTION11 NUMBER(1, 0) DEFAULT (0) NOT NULL,
         OPTION12 NUMBER(1, 0) DEFAULT (0) NOT NULL,
         OPTION13 NUMBER(1, 0) DEFAULT (0) NOT NULL,
         OPTION14 NUMBER(1, 0) DEFAULT (0) NOT NULL,
         OPTION15 NUMBER(1, 0) DEFAULT (0) NOT NULL,
         OPTION16 NUMBER(1, 0) DEFAULT (0) NOT NULL,
         OPTION17 NUMBER(1, 0) DEFAULT (0) NOT NULL,
         OPTION18 NUMBER(1, 0) DEFAULT (0) NOT NULL,
         OPTION19 NUMBER(1, 0) DEFAULT (0) NOT NULL,
         OPTION20 NUMBER(1, 0) DEFAULT (0) NOT NULL,
         REGION_ID NUMBER(38, 0),
         RPT_TYPE_DESC VARCHAR2(40)
    LOCK TABLE CB_REPORT IN EXCLUSIVE MODE NOWAIT;
    DECLARE
         CURSOR datacursor IS SELECT CB_RPT_ID, CB_ID, CB_REGION_ID, WHEN_PULLED, PARSED, RAW_DATA, JOINT, RPTTYPE, OPTION1, OPTION2, OPTION3, OPTION4, OPTION5, OPTION6, OPTION7, OPTION8, OPTION9, OPTION10, OPTION11, OPTION12, OPTION13, OPTION14, OPTION15, OPTION16, OPTION17, OPTION18, OPTION19, OPTION20, REGION_ID, RPT_TYPE_DESC FROM CB_REPORT;
         datarecord datacursor%ROWTYPE;
    BEGIN
         OPEN datacursor;
         LOOP
              FETCH datacursor INTO datarecord;
              EXIT WHEN (datacursor%NOTFOUND);
              INSERT INTO "Tmp_CB_REPORT"(CB_RPT_ID, CB_ID, CB_REGION_ID, WHEN_PULLED, PARSED, RAW_DATA, JOINT, RPTTYPE, OPTION1, OPTION2, OPTION3, OPTION4, OPTION5, OPTION6, OPTION7, OPTION8, OPTION9, OPTION10, OPTION11, OPTION12, OPTION13, OPTION14, OPTION15, OPTION16, OPTION17, OPTION18, OPTION19, OPTION20, REGION_ID, RPT_TYPE_DESC) VALUES (datarecord.CB_RPT_ID, datarecord.CB_ID, datarecord.CB_REGION_ID, datarecord.WHEN_PULLED, datarecord.PARSED, datarecord.RAW_DATA, datarecord.JOINT, datarecord.RPTTYPE, datarecord.OPTION1, datarecord.OPTION2, datarecord.OPTION3, datarecord.OPTION4, datarecord.OPTION5, datarecord.OPTION6, datarecord.OPTION7, datarecord.OPTION8, datarecord.OPTION9, datarecord.OPTION10, datarecord.OPTION11, datarecord.OPTION12, datarecord.OPTION13, datarecord.OPTION14, datarecord.OPTION15, datarecord.OPTION16, datarecord.OPTION17, datarecord.OPTION18, datarecord.OPTION19, datarecord.OPTION20, datarecord.REGION_ID, datarecord.RPT_TYPE_DESC);
         END LOOP;
    END;
    The copy works fine if I remove the long column from the CREATE TABLE "Tmp_CB_REPORT" statement
    and the cursor copy statement. Any help is appreciated.

    What I think you should do is to turn your long into a LOB. LOBs are much malleable than LONGs. I suggest you have a look at the documentation for DBMS_LOB. You can create a function using DBMS_LOB that uses a temporary CLOB to reas your long column an dreturn a CLOB.
    Cheers, APC

  • Change Tablespace of a table with LONG column

    I have a 9i database that I have just gotten control of. At this point there is just one big dictionary managed tablespace for everything created by users. I am trying to move to multiple locally managed tablespaces with fixed extent sizes but I have run into a problem.
    I have one table with one LONG datatype column. Apparently there is a huge amount of work involved to change the code if I make it a BLOB so that is out.
    At this point I would like to change the tablespace of this table but I can't move it the normal way because of the LONG column. I have found mention of being able to do this with "COPY" but I can't find any documentation on the "COPY" command in the 9i Docs.
    Any help would be appreciated,
    Chris S.

    Chris-
    Can't you create your new table ahead of time in your new tablespace?
    You could then use a statement like:
    COPY FROM old/your_password@olddb TO new/your_password@newdb -
    REPLACE NEWTABLE -
    USING SELECT * FROM OLDTABLE;

  • How to find out the length of a LONG column?

    How can I find out the length of a LONG column, I should write a stored procedure which will return me the length of a LONG column passed as an argument to it!
    any ideas or suggestions? please respond, i need this urgently, or you can mail me at [email protected]
    thanks,
    srini

    Actually a LONG variable in PL/SQL maxes out at 32K, so this would not be accruate. If you are running Oracle 8+, you could do a conversion to LOB which will give you an accurate length. Note, this example needs a table created to hold the converted lob value, you can't do it directly in pl/sql:
    create table lobhold
    (templob clob);
    declare
    mylength number;
    begin
    execute immediate 'insert into lobhold select to_lob(text) from equipment_notes where equipment_id=1448';
    select dbms_lob.getlength(templob) into mylength
    from templob;
    dbms_output.put_line(mylength);
    execute immediate 'truncate table lobhold';
    end;

  • How to retrieve 'long' column with 32K length in Java stored procedure

    For some reasons, we are not using CLOB, BLOB, or BFILE to store large objects and I have to live with LONG. So I wrote a Java stored procedure to insert, select and manipulate a LONG column by retrieving the LONG into a java.lang.String class (which happens to be the Java class mapped to the LONG SQL datatype). It all works fine as long as the length of the value being retrieved is less than the magic figure of 32767 bytes (which is the restriction on LONG and VARCHAR2 datatype in PL/SQL as well). So looks like Oracle's implementation of the JVM limits String values to a max of 32767 bytes. Suggestions on how to overcome this limitation (other classes that you suggest or do I have to move to files)?
    Thanks,
    Jeet
    null

    the jvm has nothing to do with it ...
    this is a pol/sql limitation on parameters in stored procedures.
    and java stored procedures require a clal spec that makes the j-s-p look like a pl/qsl stored proc.

  • ORA-01461: can bind a LONG value only for insert into a LONG column in 11.2

    Hello,
    We have been getting the following exception when we try to save an XML (>5k).
    SQL state [72000]; error code [1461]; ORA-01461: can bind a LONG value only for insert into a LONG column
    This is occurring only for Oracle 11g (11.2.0.1.0)
    Our column is CLOB type, not LONG type.
    Could anyone please suggest what could be the reason and fix?
    Thanks in advance
    --Cheers
    paruvid

    Thanks for quick response!!
    Inserting throw JDBC (Spring jdbcTemplate)
    using the ojdbc6.jar as driver
    here is the stask strace
    Caused by: org.springframework.jdbc.UncategorizedSQLException: PreparedStatementCallback; uncategorized SQLException for SQL [INSERT INTO tabl1(c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12, c13, c14, c15,c16(CLOBCOL),c17, c18, c19) SELECT c1,c2, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? FROM table2 S JOIN table1 D ON S.c1 = D.c1 WHERE S.c2 = ? AND D.c5 = ? GROUP BY S.c1];
    SQL state [72000]; error code [1461]; ORA-01461: can bind a LONG value only for insert into a LONG column
    ; nested exception is java.sql.SQLException: ORA-01461: can bind a LONG value only for insert into a LONG column
    at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:83)
    at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80)
    at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80)
    at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:602)
    at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:786)
    at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:842)
    at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:846)
    at com.smartstream.cms.message.dao.SSIMessageDao.editSSIInstance(SSIMessageDao.java:522)
    ... 52 more
    Caused by: java.sql.SQLException: ORA-01461: can bind a LONG value only for insert into a LONG column
    Edited by: paruvid on Aug 9, 2011 5:07 AM
    Edited by: paruvid on Aug 9, 2011 5:17 AM
    Edited by: paruvid on Aug 9, 2011 5:23 AM

  • Please Help - SQL Report long column value required in a separate cell

    Hi.
    I need to create a SQL report with the structure like below:
    Country State City Vertical Business Details (detail desc)
    US MA Quincy Healthcare
    This is a detail desc value that needs to displayed in a different cell.
    This is a detail desc value that needs to displayed in a different cell.
    This is a detail desc value that needs to displayed in a different cell.
    This is a detail desc value that needs to displayed in a different cell.
    US MA Braintree IT
    This is a detail desc value that needs to displayed in a different cell.
    This is a detail desc value that needs to displayed in a different cell.
    This is a detail desc value that needs to displayed in a different cell.
    I came through a solution where you can hide/display the long column value in a different cell. But my requirement is that it should be displayed when the page opens and user don;t want to click on a button to see the value. This is mainly for their presentations and printing. so its very annoying for them to click on so many buttons to see the detail desc value for every record. I am new to Java script, Please help

    I'm not sure I understand your requirements--are you showing us 2 lines of data, 7 lines, or 9? Do you want the long detail description on the same row, or underneath it?
    I'm going to go on the assumption that you're showing us two rows, and that the long descriptions in this example happen to be 3-4 lines long, and that you want the long descriptions underneath the details. In which case, I suggest using "named column" templates. They're a lot easier to use than they appear when you first look at them, so bear with me.
    Under "Shared Components", select "Templates", and then click on the yellow Create> button. You're creating a report template, from scratch. On the final page of the wizard, select "Named Column (row template)" for the template type. This will create a rather generic (and useless) template, which you'll have to edit; I don't know why they chose to not send you straight into the editor. When you edit it, you'll see that the only field with a value in it is "Row Template 1", and it's set to:
    <tr><td>#1#</td><td>#2#</td><td>#3#</td><td>#4#</td><td>#5#</td></tr>For meeting your requirements with basic functionality, change it to something along the lines of:
    <tr><td>#COUNTRY#</td><td>#STATE#</td><td>#CITY#</td><td>#VERT#</td></tr>
    <tr><td colspan="4">#DETAILS#</td></tr>Then you'll probably want to put something under Column Heading Template, like:
    <tr><td>Country</td><td>State</td><td>City</td><td>Vertical Business</td></tr>
    <tr><td colspan="4">Details</td></tr>Apply whatever CSS styles you want to it, of course.
    Using the template is straightforward: if your report, chose the template, and make sure your SQL returns values using the column names you specified in your template. Otherwise, you'll see literal "#COUNTRY#" text in your report.
    You can get fancy with these, of course, such as applying different styles to alternating rows, but I'll leave this as good enough to get you started (I hope).
    -David

  • Is it possible to use LONG columns in WHERE clause or ORDER BY?

    Is it possible to use LONG columns in WHERE clause or ORDER BY?

    Hi,
    LONG data type is deprecated, maybe could you change your column type to LOB ?
    Nonetheless below is a workaround which may fit your needs if forced to use LONG.
    It uses a function which returns you a CLOB. It allows you to use the converted "LONG" column in a WHERE clause.
    Then if you want to order by you have to convert the CLOB to a VARCHAR using DBMS_LOB.SUBSTR.
    SQL> CREATE TABLE my_table (id NUMBER, description LONG);
    Table created.
    SQL> INSERT INTO my_table VALUES (1, 'FIRST LONG');
    1 row created.
    SQL> INSERT INTO my_table VALUES (2, 'ANOTHER LONG');
    1 row created.
    SQL> COMMIT;
    Commit complete.
    SQL> CREATE TYPE my_type_row AS OBJECT (id INTEGER, description CLOB);
      2  /
    Type created.
    SQL> CREATE TYPE my_type_table AS TABLE OF my_type_row;
      2  /
    Type created.
    SQL> CREATE OR REPLACE FUNCTION get_my_long
      2     RETURN my_type_table
      3     PIPELINED
      4  AS
      5     v_tab   my_type_table := my_type_table ();
      6  BEGIN
      7    FOR cur IN (SELECT id, description FROM my_table)
      8  LOOP
      9        PIPE ROW (my_type_row (cur.id, cur.description));
    10  END LOOP;
    11  RETURN;
    12  END;
    13  /
    Function created.
    SQL> SELECT
      2     id,
      3     description
      4  FROM
      5     TABLE (get_my_long ())
      6  WHERE
      7     description LIKE '%LONG'
      8  ORDER BY
      9     DBMS_LOB.SUBSTR(description);
      ID DESCRIPTION
       2 ANOTHER LONG
       1 FIRST LONG
    SQL> SELECT
      2     id,
      3     description
      4  FROM
      5     TABLE (get_my_long ())
      6  WHERE
      7     description LIKE 'FI%';
      ID DESCRIPTION
       1 FIRST LONG
    SQL>Kind regards,
    Ludovic

  • LONG COLUMN을 가진 TABLE의 COPY

    제품 : SQL*PLUS
    작성날짜 : 1995-11-13
    문제 설명
    =========
    LONG COLUMN을 가진 테이블을 COPY를 해야 하는 경우 LONG COLUMN은 Subquery
    를 사용할 수 없기 때문에 다음과 같은 현상이 발생한다.
    1. "CREATE TABLE ... AS SELECT ..." 명령이나
    "INSERT INTO ... SELECT ..."
    를 사용하는 경우 ORA-0997 에러가 발생한다.
    2. SQL*Plus의 COPY 명령을 사용하는 경우 CPY0005 에러가 발생한다.
    해결 방법
    =========
    가장 쉬운 방법은 PL/SQL에서 VARCHAR2 혹은 LONG DATA TYPE을 이용하여 COPY
    한다. PL/SQL에서 VARCHAR2 및 LONG 변수는 32K까지 사용할 수 있기 때문에
    32K 이하 데이타라면 가능하고 그 이상의 데이타는 3GL을 이용한다.
    < TABLE >
    SQL> CREATE TABLE LONGTAB(NO NUMBER(2), TEXT LONG);
    < PL/SQL Script >
    DECLARE
    string varchar2(32000);
    no number(2);
    cursor c1 is
         SELECT no, text FROM longtab;
    BEGIN
    OPEN c1;
    LOOP
    FETCH c1 INTO no, string;
    exit when c1%NOTFOUND;
    INSERT INTO longtab2 VALUES (no, string);
    END LOOP;
    COMMIt;
    END;
    /

    아래 내용을 참고하세요...
    LONG COLUMN을 가진 TABLE의 COPY
    Bulletin no : 10147
    문제 설명
    =========
    LONG COLUMN을 가진 테이블을 COPY를 해야 하는 경우 LONG COLUMN은 Subquery
    를 사용할 수 없기 때문에 다음과 같은 현상이 발생한다.
    1. "CREATE TABLE ... AS SELECT ..." 명령이나
    "INSERT INTO ... SELECT ..."
    를 사용하는 경우 ORA-0997 에러가 발생한다.
    2. SQL*Plus의 COPY 명령을 사용하는 경우 CPY0005 에러가 발생한다.
    해결 방법
    =========
    가장 쉬운 방법은 PL/SQL에서 VARCHAR2 혹은 LONG DATA TYPE을 이용하여 COPY
    한다. PL/SQL에서 VARCHAR2 및 LONG 변수는 32K까지 사용할 수 있기 때문에
    32K 이하 데이타라면 가능하고 그 이상의 데이타는 3GL을 이용한다.
    < TABLE >
    SQL> CREATE TABLE LONGTAB(NO NUMBER(2), TEXT LONG);
    < PL/SQL Script >
    DECLARE
    string varchar2(32000);
    no number(2);
    cursor c1 is
    SELECT no, text FROM longtab;
    BEGIN
    OPEN c1;
    LOOP
    FETCH c1 INTO no, string;
    exit when c1%NOTFOUND;
    INSERT INTO longtab2 VALUES (no, string);
    END LOOP;
    COMMIt;
    END;
    /

  • UpdateCharacterStream for LONG column gives SQLException: Data size bigger than max

    I have a LONG column and when I call updateCharacterStream via the resultset I get the following error:
    SQLException: Data size bigger than max size for this type: 2391
    I am trying to update the column with a value that is 2391 in length. The column is defined as a LONG so it is plenty big enough.
    What gives?
    If I use a UTF-8 database it works OK. But if I use a db that is on the default character set I get the error. There are NO multibyte characters, I just happened to test it against my unicode db and it worked.

    This only happens with the thin driver. I am using 8i. It also works OK if the target db is in UTF8!
    D:\myjava>java OracleLongTest
    Registering the ORACLE JDBC drivers.
    Connecting to database
    Connection = oracle.jdbc.driver.OracleConnection@1616c7
    Insert via prepared statement with reader length = 2200
    Insert with prepared statement was successfull
    Updating via prepared statement with reader length = 2200
    Update with prepared statement was successfull
    ===========================================================================
    ticketDesc len = 2200 mod date = 970510081398
    Updating with reader length = 2200
    Updating C1 ts = 970510081608
    Updating the row...
    Exception 2 = java.sql.SQLException: Data size bigger than max size for this type: 2200
    java.sql.SQLException: Data size bigger than max size for this type: 2200
    at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:114)
    at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:156)
    at oracle.jdbc.dbaccess.DBError.check_error(DBError.java:775)
    at oracle.jdbc.ttc7.TTCItem.setArrayData(TTCItem.java:82)
    at oracle.jdbc.driver.OraclePreparedStatement.setItem(OraclePreparedStatement.java:761)
    at oracle.jdbc.driver.OraclePreparedStatement.setDatum(OraclePreparedStatement.java:1464)
    at oracle.jdbc.driver.OraclePreparedStatement.setCHAR(OraclePreparedStatement.java:1397)
    at oracle.jdbc.driver.OraclePreparedStatement.setObject(OraclePreparedStatement.java:1989)
    at oracle.jdbc.driver.OraclePreparedStatement.setObject(OraclePreparedStatement.java:2200)
    at oracle.jdbc.driver.OraclePreparedStatement.setOracleObject(OraclePreparedStatement.java:2216)
    at oracle.jdbc.driver.UpdatableResultSet.prepare_updateRow_binds(UpdatableResultSet.java:2070)
    at oracle.jdbc.driver.UpdatableResultSet.updateRow(UpdatableResultSet.java:1287)
    at OracleLongTest.run(OracleLongTest.java:146)
    at OracleLongTest.main(OracleLongTest.java:41)
    FINISHED!!
    StringBuffer sb = new StringBuffer("");
    for(int i = 0; i < 2200; i++)
    sb.append("X");
    Statement stmt = con.createStatement();
    try
    String insertSQL = "CREATE TABLE MYLONGTEST (C1 NUMBER(38), C2 LONG)";
    stmt.executeUpdate(insertSQL);
    catch( SQLException se) {}
    PreparedStatement insertPstmt = con.prepareStatement("INSERT INTO MYLONGTEST VALUES (?, ?)");
    PreparedStatement updatePstmt = con.prepareStatement("UPDATE MYLONGTEST SET C2 = ? WHERE C1 = ?");
    PreparedStatement selectPstmt = con.prepareStatement("SELECT C1,C2 FROM MYLONGTEST WHERE C1 = ?", 1004, 1008);
    long ts = System.currentTimeMillis();
    String value = sb.toString();
    Reader rdr = new StringReader(value);
    int len = value.length();
    try
    System.out.println("Insert via prepared statement with reader length = " + len);
    insertPstmt.setLong(1, ts);
    insertPstmt.setCharacterStream(2, rdr, len);
    insertPstmt.execute();
    System.out.println("Insert with prepared statement was successfull");
    catch( SQLException se )
    System.out.println("Caught exception = " + se.toString());
    try
    System.out.println("Updating via prepared statement with reader length = " + len);
    rdr = new StringReader(value);
    updatePstmt.setCharacterStream(1, rdr, len);
    updatePstmt.setLong(2, ts);
    int rowcount = updatePstmt.executeUpdate();
    System.out.println("Update with prepared statement was successfull");
    updatePstmt.close();
    catch( SQLException se )
    System.out.println("Caught exception = " + se.toString());
    System.out.println("===========================================================================");
    selectPstmt.setLong(1, ts);
    ResultSet rs = selectPstmt.executeQuery();
    rs.absolute(1);
    String c2 = rs.getString("C2");
    ts = rs.getLong("C1");
    System.out.println("c2 len = " + c2.length() + " mod date = " + ts);
    rs.absolute(1);
    ts = System.currentTimeMillis();
    System.out.println("Updating with reader length = " + len);
    rdr = new StringReader(value);
    rs.updateCharacterStream("C2", rdr, len);
    ts = System.currentTimeMillis();
    System.out.println("Updating C1 ts = " + ts);
    rs.updateLong("C1", ts);
    System.out.println("Updating the row...");
    rs.updateRow();
    null

  • Text search query into long column

    hi,
    I need some explanation about this situation:
    I need to perform a search into a long column containing XML file. Not all records found match my search criteria.
    If I search in a varchar column it seem to be correct, so have you any suggest for me?
    thanks in advance,
    Virginio
    null

    I'm working with Oracle8i version 8.1.7
    realese 3.
    This is an example of query that I'm using:
    select *
    from <table>
    where contains (<column>, <string>, 0) > 0
    where <column> is of type Long and <string>
    is the text to search. At the moment I don't need to apply any score filter.
    I've generated the index on this table as suggested by documentation:
    create index <index_name> on <table>(<column>) indextype is ctxsys.context;
    Thanks in advanced,
    Virginio.
    <BLOCKQUOTE><font size="1" face="Verdana, Arial, Helvetica">quote:</font><HR>Originally posted by Omar Alonso ([email protected]):
    Could you please post the test case? What's the db version and platform?<HR></BLOCKQUOTE>
    null

Maybe you are looking for

  • Password Issues with Charter Mail Account

    Hi, I am setting up my new iPad Wi-Fi 4G with my email accounts for Charter. With this I have run into the following issue: -email accounts with only alpha or only numeric passwords work fine. -email accounts with a alpha/numeric passwords will not w

  • ORA-20998: Transaction Failed on Headstart Utilities 6.5 installation

    Hello, I am having problem when running insthsu.sql script to install Headstart utilities 6.5. We are doing client/server approach. The server is Sun 450 - Oracle 8.1.7.0.0 Designer 6i Release 4 repository was installed on the server. How far was the

  • How to open multiple db connections from one form?

    Hello, We have two different Oracle databases and need to access them (read and write) from the same form. Is there a way to do this, apart from using EXEC_SQL as described in Note 67516.1 ? I could also use db_links and synonyms, but this would add

  • Pages inserted  image "placement" greyed

    Using Pages '09, version 4.0 (727) I started with a blank document, added a table, added a photo (shift-command-V). The photo cannot be altered from "Inline (Moves with text)". Why? I had this happen a year ago, and got a solution, but I have lost my

  • Dynamic Windows with SMARTFORMS

    Hi, I have a smartforms form. I want the position and size of the windows dynamic. The only idea I have is to do it with if commands. Is there a better way ???? Thanks for help sincerly Arne