Page 1 of 1
ORA-01461: can bind a LONG value only for insert into a LONG column
Posted: Fri 12 Apr 2019 07:22
by joongtang
Hello.
After connecting to Oracle 10g in direct mode, when I insert VARCHAR2(4000) column to some value, occur this error
ORA-01461: can bind a LONG value only for insert into a LONG column
However, if the column is sent to the back of the insert statement or the value is less than 715 Bytes, the error does not occur.
Code: Select all
CREATE TABLE TEST (
COL1 VARCHAR2(10 BYTE),
COL2 VARCHAR2(4000 BYTE),
COL3 VARCHAR2(10 BYTE)
)
This statment occur error
Code: Select all
INSERT INTO TEST
(
COL1, COL2, COL3
)
VALUES
(
:COL1, :COL2, :COL3
)
but, this statment is not occur error and works.
Code: Select all
INSERT INTO TEST
(
COL1, COL2, COL3
)
VALUES
(
:COL1, :COL2, 'Value'
)
and dbForge studio 2018 for Oracle 32bit appear
same error.
Thanks advance.
Oracle Server Version
- Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options
Re: ORA-01461: can bind a LONG value only for insert into a LONG column
Posted: Mon 15 Apr 2019 12:27
by MaximG
We could not reproduce the issue according to your description. For further investigation, please compose and send us a project, execution of which causes the issue. It is convenient to do it using the e-support form :
https://www.devart.com/company/contactform.html
What NLS parameters the used Oracle DB has ( in order for you to get them, use the following query : select * from v$nls_parameters )
Re: ORA-01461: can bind a LONG value only for insert into a LONG column
Posted: Mon 15 Apr 2019 23:58
by joongtang
NLS parameters is
Code: Select all
NLS_LANGUAGE KOREAN
NLS_TERRITORY KOREA
NLS_CURRENCY ?
NLS_ISO_CURRENCY KOREA
NLS_NUMERIC_CHARACTERS .,
NLS_CALENDAR GREGORIAN
NLS_DATE_FORMAT RR/MM/DD
NLS_DATE_LANGUAGE KOREAN
NLS_CHARACTERSET KO16KSC5601
NLS_SORT BINARY
NLS_TIME_FORMAT HH24:MI:SSXFF
NLS_TIMESTAMP_FORMAT RR/MM/DD HH24:MI:SSXFF
NLS_TIME_TZ_FORMAT HH24:MI:SSXFF TZR
NLS_TIMESTAMP_TZ_FORMAT RR/MM/DD HH24:MI:SSXFF TZR
NLS_DUAL_CURRENCY ?
NLS_NCHAR_CHARACTERSET AL16UTF16
NLS_COMP BINARY
NLS_LENGTH_SEMANTICS BYTE
NLS_NCHAR_CONV_EXCP FALSE
Re: ORA-01461: can bind a LONG value only for insert into a LONG column
Posted: Tue 16 Apr 2019 14:45
by MaximG
Please specify the version of UniDaC you are using. To investigate the issue, we will need a small test example showing the inert of records to the TEST table.
Re: ORA-01461: can bind a LONG value only for insert into a LONG column
Posted: Tue 16 Apr 2019 23:47
by joongtang
Version is 7.3.10 Pro and 7.4.12 Pro.
Test Table and Insert example is written in the upper article.
Sorry for not supporting DB connect string for security reasons.
Thanks.
Re: ORA-01461: can bind a LONG value only for insert into a LONG column
Posted: Wed 17 Apr 2019 12:36
by MaximG
To reproduce the issue, we need an example on Delphi or C++Builder showing the work with the parameters of the query you provided. It is convenient to do it using the e-support form :
https://www.devart.com/company/contactform.html
Re: ORA-01461: can bind a LONG value only for insert into a LONG column
Posted: Fri 19 Apr 2019 00:54
by joongtang
While configuring the test server, it turns out to be an Oracle issue, not a UniDAC issue.
The two databases (A and B) are connected by DB Link.
The character set of DB-A is UTF8, and the version is 12c.
The character set of DB-B that I tried to insert values is KO16KSC5601, and the version is 10g.
It seems to be a character set issue between the two DBs.
An Error occurred when trying to insert values into test table in DB-B through DB-A.
It seems to be a character set issue between the two DBs.
The same error occurs in Oracle SQL Developer.
I am really sorry to report the wrong issue.
Thank you.
Re: ORA-01461: can bind a LONG value only for insert into a LONG column
Posted: Thu 25 Apr 2019 14:37
by MaximG
We are glad that you found a necessary solution. Please don't hesitate to contact us with questions concerning UniDAC usage.