English

Error: DB_execute_insert_table OCI Execute Error (1461). SDE_Oracle Error: 1461 ORA-01461: can bind a LONG value only for insert into a LONG column

Error Message

The following error is displayed in the ArcSDE error log file in $SDEHOME/etc when checking out data or using sdeimport:

"DB_execute_insert_table OCI Execute Error (1461).
SDE_Oracle Error: 1461 ORA-01461: can bind a LONG value only for insert into a LONG column"

The error occurs most frequently when checking out data using disconnected editing or using the SDEIMPORT command.

When using disconnected editing in ArcMap, the following error message is displayed:
"Check out failed. Item not found in collection."

The following error message is displayed when using SDEIMPORT:

"ArcSDE 9.1 Oracle9i Build 1382 Wed Apr 19 15:01:47 PDT 2006
SDEX File Import Administration Utility
-----------------------------------------------------
Importing SDEX from some_file.sdex ...
Importing spatial column "shape"
SDE Code (-51)= Underlying DBMS error
Extended DBMS error code: 1461
ORA-01461: can bind a LONG value only for insert into a LONG column
Error in stream loading..."

Note:
If using Direct Connect: The steps below apply if connecting to an ArcSDE service using application server (3-Tier) connections. If using direct connect from a Windows machine, modify the NLS_LANG registry key to match the character set used on the server, e.g., _.UTF8. The registry key is HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\NLS_LANG.

Cause

These errors occur as a direct result of Oracle bug 1400539. The underlying cause is conflicting character sets between the database server and the client application, ArcSDE, connecting to Oracle.

See the link in the Related Information section below for more information on Oracle's bug report for this bug.

Note:
This bug has been fixed in Oracle 10g; only Oracle 9i and Oracle 8i are affected by this bug.

Solution or Workaround

Specify the database character set in ArcSDE server's dbinit.sde file. In the following steps, UTF8 is used as the database's character set.

  1. Find the character set the database is using:

    Code:
    select * from nls_database_parameters where parameter='NLS_CHARACTERSET';

    PARAMETER VALUE
    -------------------- --------------------
    NLS_CHARACTERSET UTF8

  2. Add this line to the dbinit.sde file. Note the _. prefix to the character set name:

    Code:
    set NLS_LANG=_.UTF8

  3. Restart the ArcSDE service.

Related Information