Регистрация Забыли пароль?
Логин
Пароль
Запомнить меня
Вход через ВКонтакте
Главная > Статьи > ORA-01461 один из путей исправления

ORA-01461 один из способов исправления

Сегодня я словил ошибку ORA-01461. Для повторения используйте следующий код


create table table1 (

 field1 varchar2(4000 byte)

);

 

declare

  -- максимальний размер для

  -- varchar2 в PL/SQL

  l_txt1 varchar2(32767) :=

      lpad('*', 32767, '*');

  -- максимальний размер для 

  -- varchar2 в SQL

  l_txt2 varchar2(4000) :=

    substr(l_txt1, 1, 4000);

begin

  -- на етой коменде получаем ORA-01461

  -- стреляет как как длина переменной больше 

  -- чем длина поля field1 (обяснение ниже)

  insert into table1(field1)

  values(substr(l_txt1, 1, 4000));

 

  -- но при использовании переменной с правильно

  -- длинной все будет нормально

  insert into table1(field1)

  values(substr(l_txt1, 1, 4000));

end;

/

 

drop table table1;

Когда я увидел сообщение об ошибке то первім делом глянул на структуру таблицы, но не увидел там ни единого LONG поля. Было несколько varchar2(4000 byte) полей. Подозревая проблему в превишении длины поля я попробовал заменить substr на substrb но безрезультатно, после етого я попытался спользовать локальную переменную и проблема исчезла.

Но в чем была проблема? Немного погуглив я нашел обяснение на Oracle Forum. Насколько я понял из обяснений: когда Oracle связывает пременные, то не выполняет функцию substr перед вычислением длинны переменной, в результате "думает" что длина переменной 32767 но такака ето превишает максимальную длину для SQL в 4000 то Oracle решает использовать LONG тип, что и призводит к ошибке. При использовании локальной переменной связывание происходит правильно и используеться переменная типа varchar2 вместо long.

Надеюсь комуто поможет
Удачи
Сергей

Вы можете добавить коментарий на етой странице или на странице форума тут.Постов 17.

Последний комментарий

02.07.2018
how to make sex romantic for my girlfriend jessica jaymes porn gay
teens porn porn hub sex kim kardashian sex tape full video
darth talon porn gay hairy sex young porn tube latina anal
porn shemale sex videos married sexting meme capricorn sextrology male sloppy seconds christmas album
transexual sex latina booty porn ebony mature porn sex tickling
sex tips after prostate removal no sex for a year with wife vista porn sex tablets for male in dubai sex themed gift baskets thai
anal sex sex in bath 18 sexiest sports broadcasters school sex videos hot
porn videos sex bob omb sex gay iwank porn fair
sex meaning in urdu new sex positions to surprise your girlfriend
with pictures sex vs affection how to have sex free hood porn bbw
anal sex sex muvis sex videos on youtube people sexiest men alive dayna vendetta porn sex sister funny sexual words of wisdom kesha porn porn audition had sex no condom pulled out big fat
black women having sex
26.01.2018
I got this site from my friend who shared with me concerning this web page and now this time I
am browsing this web site and reading very informative content at this place.


http://bitcoin-can-change-your.life - Take your Bitcoin here for Free!
27.12.2017
Революционное обновление "XRumer 16.0 + XEvil 3.0":
распознавание captchas Google, Yandex, Фэйсбука, Vkontakte, Bing, Hotmail, Mail.Ru, SolveMedia,
а также свыше 8400 (!) других типов captchas,
с высокой скоростью (100 изображений в секунду) и точностью (80%-100%). В XEvil 3.0 реализовано подключение любых SEO/SMM программ - XRumer, GSA, ZennoPoster, VKBot, A-Parser,
и многих других. Готовится абсолютно бесплатная демо-версия. Интересно? см. в YouTube "XEvil: new OCR - captcha solver"

Имя*E-mail
Код*