ORA-01461 error in DB with char encoding = UTF8

From: Brian J. Levine <blevine_at_blueripple.com>
Date: Sun, 17 Dec 2000 20:36:48 GMT
Message-ID: <At9%5.1702$gS.1790930_at_typhoon.ne.mediaone.net>


Hi all,

Configuration:

    Weblogic 5.1 SP6
    Windows 2000
    Oracle 8.1.6
    Oracle OCI drivers

Originally, we had the character encoding for our DB set to iso8859-1. Realizing that we'd need to store some international characters, we rebuilt the DB with character encoding = UTF8. After that, we started seeing the following exception,

[java.sql.SQLException: ORA-01461 : can bind a LONG value only for insert into a LONG column]

when we execute the PreparedStatement

when we switch back to iso8859-1, we no longer see this error.

Here is the definition of the table in question:

create table Event_Log (

    id              number(20),
    type            varchar(25),
    time            date,
    user_id         number(20),
    firm_id         number(20),
    marketspace_id  number(20),
    object_id       number(20),
    duration        number(20),
    bytes           number,
    string_info     varchar(200)

);

And here is a code snippet showing how we execute the SQL:

            sql.setLong(i++, id);
            sql.setString(i++, type.toString());
            sql.setTimestamp(i++, millis);
            sql.setLong(i++, userId);
            sql.setLong(i++, firmId);
            sql.setLong(i++, marketSpaceId);
            sql.setLong(i++, objectId);
            sql.setString(i++, stringInfo);
            sql.setLong(i++, duration);
            sql.setInt(i++, bytes);

Any insights as to the cause of this exception would be appreciated.

Thanks.

-brian Received on Sun Dec 17 2000 - 21:36:48 CET

Original text of this message