powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
25 сообщений из 112, страница 2 из 5
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39711585
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBAshnikSYДа суть вообще-то не в этом. Какой смысл писать EXECUTE IMMEDIATE с литералом (невaжно NULL не NULL) в качестве bind value?а тот что этот литерал может подменятся внутри ява кода мысль не посещала? ;-)Динамически формировать plsql из джавы, который динамически выполняет sql. Есть какие-то обоснования для извращений?
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39711668
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBAshnikа тот что этот литерал может подменятся внутри ява кода мысль не посещала? ;-)

Ты знаешь, воображение у меня воспаленное, но чтобы настолько? Даже если в чьих-то отравленных нарзаном мозгaх и возникнет мысль лепить динамический SQL в java, то я по наивности бы ожидал:

Код: plsql
1.
execute immediate 'select count(*) from dual where sysdate > literal' into lCnt



Но

Код: plsql
1.
execute immediate 'select count(*) from dual where sysdate > :bind' into lCnt using literal



это венец творенья. Пишем косяк а затем его исправляем косяком.

SY.
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39711827
DBAshnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SY
это венец творенья. Пишем косяк а затем его исправляем косяком.

SY.

???? обоснуй
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39711868
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBAshnik???? обоснуй

Косяк 1: Зачем в java генерирорать динамический SQL?
Косяк 2: Косяк 2 использование литeрала в качестве bind переменной.

Почему не обыкновенный:

Код: plsql
1.
2.
SelectStatement = connection.prepareStatement("select count(*) from dual where sysdate > ?");
SelectStatement.setDate(1,JavaDateVariable); 



Тога и косяк 2 не потребуется.

SY.
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39711878
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, есть еще и косяк 3. Если java генерит

Код: plsql
1.
SelectStatement = connection.prepareStatement("execute immediate 'select count(*) from dual where sysdate > :xDt  ' into lCnt using каждый-раз-новый-литерал";



то подумай над shared pool.

SY.
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39711891
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SYЗачем в java генерирорать динамический SQL?
Есть смешной вариант, когда шаблон SQL-я прилада тянет из специальной таблички-репозитория, а параметры запихивает в текст реплейсом placeholder-ов.
Вариация на тему метамоделей.
Тогда сами шаблоны пишут специально (не)обученные человеки.
И да, библиотечному кэшу в этом варианте бывает слегка дурно при высокой интенсивности запросов.
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39712090
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сообщение, конечно, не самое дружественное. С другой стороны, имея кучу реальных проблем, тратить время и силы на улучшение поведения в изначально нездоровой ситуации - глупо. Ну а наплодив такую хрень и выпустив - судя по "куче времени" - из-под контроля её управляемость, видеть причину всех несчастий в оракловой диагностике - лично я это называю "Перекладывать вину со своей головы на здоровую".
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39713062
DBAshnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SY
Почему не обыкновенный:

Код: plsql
1.
2.
SelectStatement = connection.prepareStatement("select count(*) from dual where sysdate > ?");
SelectStatement.setDate(1,JavaDateVariable); 



...
SY.

потому, что это Talend! И там я такое делать не могу, к сожалению (в данном проекте, по крайней мере). А динамический SQL-там по любому нужен, по другим причинам, в которые я не хочу углубляться!

Нежелание ораклом сделать интуитивно-удобно равно и неадекватная диагностика ошибок оракл (как в этом, так и в других случаях) совершенно очевидно имеет место быть!!! В этом меня тут пока никто не переубедил! Пока вижу только попытки наехать и высокомерие.
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39713072
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBAshnikпотому, что это Talend!не переубедил.
DBAshnikНежелание ораклом сделать интуитивно-удобнокакого типа должен получиться бинд значения неизвестного типа?
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39713105
DBAshnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-2- потому, что это Talend!не переубедил.
большой опыт работы с _нашими_ проектами на Talend?? ;-)

DBAshnikНежелание ораклом сделать интуитивно-удобнокакого типа должен получиться бинд значения неизвестного типа?[/quot]
не знаю! Иначе б я в Оракл работал, наверное ;-) Интуиция подсказывает, что есть сравнивается, например, с date, то и подставляй - будь любезен - to_date() за человека автоматически, или это уже про запредельный hi-tec по твоему? ;-)
А то это пока что уровень комфорта из прошлого века ( когда ещё телепрограммы плоскогубцами переключали. ))) И ничё, выживали ж как-то! :-)))) )
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39713110
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBAshnikпотому, что это Talend!

C Talend не знаком, но если нет другого выхода кроме dynamic SQL, то почему не:

Код: plsql
1.
2.
3.
4.
5.
6.
declare 
  lCnt pls_integer;
  lDt date := ...; -- тут и вставляй свой литерал
begin 
   execute immediate 'select count(*) from dual where sysdate > :xDt  ' into lCnt using lDt;
end;



SY.
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39713129
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBAshnik-2-какого типа должен получиться бинд значения неизвестного типа?не знаю! Иначе б я в Оракл работал, наверное ;-) Интуиция подсказывает, что есть сравнивается, например, с date , то и подставляй - будь любезен - to_date()Когда напишешь свою СУБД, реализуешь интуитивное распознавание типов выражений по строке динамического sql. И про возможность указать в строке "хинты" типа to_date() не забудь, а то ведь одни и те же операции могут выполняться с разными типами.
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39713134
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Будь моя воля я бы вообще запретил USING литeралы в EXECUTE IMMDEDIATE.

SY.
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39713136
XMLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBAshnik Интуиция подсказывает, что есть сравнивается, например, с date, то и подставляй - будь любезен - to_date() за человека автоматически

Не дай бог! Лучше разбираться с ошибками чем со слабо прогнозируемым результатами. Как по мне так в oralce слишком много неявных преобразований типов.
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39713138
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SYБудь моя воля я бы вообще запретил USING литeралы в EXECUTE IMMDEDIATE
Так там ведь разрешены не литералы, а выражения - что хорошо и правильно, а литералы - просто частный случай выражений. Практически бессмысленный в таком контексте, конечно, но специально запрещать экзотический способ выстрелить себе в ногу... имхо, лучше бы заниматься чем-то реально полезным.
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39713142
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
XMLerНе дай бог! Лучше разбираться с ошибками чем со слабо прогнозируемым результатами. Как по мне так в oralce слишком много неявных преобразований типов.
Угу. Это вечный источник радости.
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39713144
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А ещё лучше как-нибудь так:
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39713153
DBAshnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerXMLerНе дай бог! Лучше разбираться с ошибками чем со слабо прогнозируемым результатами. Как по мне так в oralce слишком много неявных преобразований типов.
Угу. Это вечный источник радости.

??? это где такие бажищи!?! (версия? Патчи?) 53 естественно лажа, так как тип определяет _оператор_ (в данном случае "+") а не операнд!

у меня, хоть на 11g хоть на 12с:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
select 5 + '3' from dual
--
8

select 5 - '3' from dual
--
2
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39713156
DBAshnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerА ещё лучше как-нибудь так:

Вау! У меня везде только 7ки, _разумеется_!
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39713157
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SY
Код: plsql
1.
2.
3.
4.
5.
6.
declare 
  lCnt pls_integer;
  lDt date := ...; -- тут и вставляй свой литерал
begin 
   execute immediate 'select count(*) from dual where sysdate > :xDt  ' into lCnt using lDt;
end;



SY.
21689495
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39713158
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBAshnik??? это где такие бажищи!?! (версия? Патчи?)
В браузере F12 нажми. Это javascript-овая консоль. В оракле есть свои замечательные моменты. Ну вот хотя бы попробуй угадать результат следующего:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
create table t$1(i integer, j integer);
insert into t$1 values (1, 1);
insert into t$1 values (2, 2);
create table t$2 (i integer, j varchar2(10));
insert into t$2 values (1, '1');
insert into t$2 values (3, 'foo');
select * from t$1, t$2 where t$1.i = t$2.i and t$1.j = t$2.j;
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39713160
DBAshnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тоже и в NDS! Ответ только 7 (и в 11g и в 12с)

Код: plsql
1.
2.
3.
4.
5.
6.
7.
declare
  lRslt pls_integer;
begin
  --execute immediate 'select :x1 + :x2 - :x3 from dual' into lRes using 5, '3', '1';
  execute immediate 'select :x1 - :x2 + :x3 from dual' into lRslt using 5, '1', '3';
  dbms_output.put_line ( 'lRslt: ' || lRslt );
end;      



7
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39713165
DBAshnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymous К примеру, ввести правило, по которому все параметры для анонимного динамически генерируемого pl/sql блока должны декларироваться:


ну да, придётся ввести такое правило, похоже. Раз такая пьянка....
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39713168
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerпопробуй угадать результат
Что тут угадывать? ORA-01722 или нормальное выполнение - как фишка ляжет.
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39713175
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymous,

вот уж в чьей способности ответить я не сомневался... :)
...
Рейтинг: 0 / 0
25 сообщений из 112, страница 2 из 5
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]