Registration Forgot password?
Login
Password
Remember me
Login through VKontakte
General > Articles > ORA-01461 one way to fix

ORA-01461 one way to fix

Today I catch ORA-01461. For reproducing, please, use following code

create table table1 (
 field1 varchar2(4000 byte)
);
 
declare
  -- max size for 
  -- varchar2 in PL/SQL
  l_txt1 varchar2(32767) :=
      lpad('*', 32767, '*');
  -- max size for
  -- varchar2 in SQL
  l_txt2 varchar2(4000) :=
    substr(l_txt1, 1, 4000);
begin
  -- this line rize ORA-01461
  -- fire because variable length more than
  -- field length field1 (described bottom)
  insert into table1(field1)
  values(substr(l_txt1, 1, 4000));
 
  -- but when we use local variable with
  -- right length (4000 as length field1) all good
  insert into table1(field1)
  values(substr(l_txt1, 1, 4000));
end;
/
 
drop table table1;

When I catch error, first of all I look at table structure, but not found any LONG field. Only few varchar2(4000 byte) fields. Suspecting problem with field size limit excess I try change substr on substrb but withput result, after that I used local variable and problem disappeared.

But what is root of problem? Google few minutes I found description on Oracle Forum. As I understand: when Oracle bind variable, it's not calculate result of function substr before calculating length of variable, as result Oracle "think" that variable length is 32767 and this length more than max size for SQL (4000 characters) so Oracle decide using LONG type, which leads to error . When local variable used bind passes rightly and used variable with right data type varchar2 instead of long.

Hope it's help for somebody
Good luck
Sergii

You can add comment on current page, or on forum page there.Post count 11.

Last comment

04.03.2021
Hookup Females Makes use of Free Issues? An Incredible Side to side Benefit!


Cost-free hookup women find more online is the solution if you're tired with gonna cafes and night clubs simply to be ignored, or even worse, laughed at.

I am aware what it's like because I've been there.
I used to be one and desperate back into the day time -- I needed a brand new lover -- but I kept on trying because I needed not one
other option. If you're a single gentleman who wishes to hookup with hot females without likely to those areas where girls are by itself, than the report might
just make positive changes to existence. It would make clear why dating on-line is the best substitute if you're a male who seems to be too shy to method
an attractive female in the bar or club.
10.01.2021
buy drugs online
viagra
08.01.2021
generic sildenafil
偉哥價格

Name*E-mail
Code*