powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
112 сообщений из 112, показаны все 5 страниц
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39710030
DBAshnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plsql
1.
2.
3.
4.
5.
declare 
  lCnt pls_integer;
begin 
   execute immediate 'select count(*) from dual where sysdate > :xDt  ' into lCnt using null;
end;



и главное: PLS-00457:"expressions have to be of SQL types"
эээээ!!!? Встречный вопрос: а что, NULL был когда то незнаком в SQL??????

( "... using to_date( null );" естественно работает! )

Протянули это позорище аж до 12.2, как я щас убедился! :-(

P.S. "повбывав бы!"(с)
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39710035
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBAshnikи главноеЧем тебе это мешает в практической жизни?
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39710055
DBAshnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ElicDBAshnikи главноеЧем тебе это мешает в практической жизни?

ну как это чем? Например тем, что когда в "общей кухне" что-то не в порядке, то находишь такую фигню сперва потеряв кучу времени!
Ну и вообще: а чем может "помешать в практической жизни", скажем, авиационный прибор неправильно диагностирующий проблему?
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39710063
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBAshnikпотеряв кучу времени!Дитя гуя?
Код: plsql
1.
2.
3.
4.
   execute immediate 'select count(*) from dual where sysdate > :xDt  ' into lCnt using null;
                                                                                        *
ERROR at line 4:
ORA-06550: line 4, column 89:

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

в "общей кухне" всё строится в run-time и очень громоздко и запутано. Да и вообще спич не об этом! А о явном неадеквате оракл-диагностики!
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39710081
SQL*Plus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
SQL> declare 
  2    lCnt pls_integer;
  3  begin 
  4     execute immediate 'select count(*) from dual where sysdate > :xDt  ' into lCnt using TO_DATE(null);
  5  end;
  6  /

PL/SQL procedure successfully completed.
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39710085
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBAshnikПротянули это позорище аж до 12.2, как я щас убедился! :-(


NULL типа не имеет, так-что "have to be of SQL types" вполне уместен. Ну не хочет Oracle заморачиваться implicit conversions.

SY.
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39710087
Фотография orawish
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да и гуя гую рознь
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39710111
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBAshnikв "общей кухне" всё строится в run-time и очень громоздко и запутано.
Так значит надо систематизировать и распутывать.
К примеру, ввести правило, по которому все параметры для анонимного динамически генерируемого pl/sql блока должны декларироваться:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
declare 
  lCnt pls_integer;
  lDt date := null;
--  lDt date := :bind_dt_param;
--  lDt date := <placeholder>;
begin 
   execute immediate 'select count(*) from dual where sysdate > :xDt  ' into lCnt using lDt;
end;
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39710119
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SYDBAshnikПротянули это позорище аж до 12.2, как я щас убедился! :-(


NULL типа не имеет, так-что "have to be of SQL types" вполне уместен. Ну не хочет Oracle заморачиваться implicit conversions.

SY.Обычно для работы implicits требуется, чтоб было выполнено type inference для всех сотовляющих.
Только тогда можно на основании опредленных правил вызвать implicits когда понятно из чего во что конвертируем.
Так что в данном конкретном случае заморачиваться Ораклу особого смысла и нет.

Другой вопрос, что тип вроде может быть выведен, но он получается очень "специфическим"
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
SQL> create or replace view v as select null x, cast(null as varchar2(1)) y from dual;

View created.

SQL> select column_name, data_type, data_length from user_tab_columns where table_name = 'V';

COLUMN_NAM DATA_TYPE  DATA_LENGTH
---------- ---------- -----------
X          VARCHAR2             0
Y          VARCHAR2             1

SQL> select cast(null as varchar2(0)) from dual;
select cast(null as varchar2(0)) from dual
                              *
ERROR at line 1:
ORA-01723: zero-length columns are not allowed
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39710450
UDW
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBAshnik,

А ничего, что в Вашем сравнении используется запрещннная комбинация "> null"?
В доке по SQL четко указывается, что следует использовать "is not null".
Так чт это не баг.
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39710477
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
UDWА ничего, что в Вашем сравнении используется запрещннная комбинация "> null"?Тебе нельзя писать where поле>123, если поле nullable?
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39710486
SkilledJunior
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
null null-у рознь
Код: plsql
1.
execute immediate 'select count(*) from dual where sysdate > :xDt  ' into lCnt using '';



UDWиспользуется запрещннная комбинация "> null"?
Кем запрещенная?
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39710506
SkilledJunior
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DBAshnikПротянули это позорище аж до 12.2, как я щас убедился! :-(

Ты используешь переменную :xDt, она как то объявлена?

Тебя же не удивляет, что такой код не работает:
Код: plsql
1.
2.
3.
declare 
  xDt null;
begin ...



Если ты собираешь execute immediate динамически, дата будет литералом, отсутствующая дата станет '', как там оказалось слово null?
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39710709
UDW
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SkilledJunior,

А почитать документацию религия не позволяет?
авторRestriction on bind_argument The value of bind_argument cannot be TRUE, FALSE, or NULL. To pass the value NULL to the dynamic SQL statement, use an uninitialized variable where you want to use NULL, as in "Uninitialized Variable Represents NULL in USING Clause" on page 7-4.
Oracle® Database PL/SQL Language Reference 11g Release 2 (11.2) E25519-13
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39710773
jan2ary
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBAshnik,

Люди склонны перекладывать вину за собственное невежество на других, например, на производителя ПО...
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39710813
DBAshnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SkilledJuniornull null-у рознь
Код: plsql
1.
execute immediate 'select count(*) from dual where sysdate > :xDt  ' into lCnt using '';



UDWиспользуется запрещннная комбинация "> null"?
Кем запрещенная?

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

и в самом деле! Рубя И ТАК УЖЕ столь громадную "капусту" со всего мира за лицензии, можно уже просто и не захотеть сделать жизнь своих потребителей хоть немного удобнее! :-(
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39710846
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBAshnikхоть немного удобнее!Сколько экспрессии для бури в рюмке.
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39710861
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBAshnikжизнь своих потребителей хоть немного удобнееПо мне, так expressions have to be of SQL types говорит о проблеме яснее, чем вариации ошибок inconsistent datatypes.
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39711329
SkilledJunior
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
UDWSkilledJunior,

А почитать документацию религия не позволяет?[/quot]

Иии, где же там написано о запрещенной комбинации:
UDWА ничего, что в Вашем сравнении используется запрещннная комбинация "> null"?
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39711333
SkilledJunior
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DBAshnikи в самом деле! Рубя И ТАК УЖЕ столь громадную "капусту" со всего мира за лицензии, можно уже просто и не захотеть сделать жизнь своих потребителей хоть немного удобнее! :-(

Разработчик совершенно осознанно и принудительно сам запихал слово null в using, т.е. вместо того чтобы создать переменную, присвоить ей значение и просто указать имя переменной, он заморочился анализом значения, дешифровал его и запихнул в using результат своей дешифровки в виде литерала, кстати запихивать дату в виде строки не приводя ее к типу дата с явно заданным форматом тоже те еще грабельки.

Если бы разработчик заморочился еще чуть чуть, то он бы прочитал в доке:
Example 7-7 Uninitialized Variable Represents NULL in USING Clause
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39711347
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SkilledJuniorЕсли бы разработчик заморочился еще чуть чуть, то он бы прочитал в доке:
Example 7-7 Uninitialized Variable Represents NULL in USING Clause

Да суть вообще-то не в этом. Какой смысл писать EXECUTE IMMEDIATE с литералом (невaжно NULL не NULL) в качестве bind value?

SY.
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39711571
DBAshnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SYSkilledJuniorЕсли бы разработчик заморочился еще чуть чуть, то он бы прочитал в доке:
Example 7-7 Uninitialized Variable Represents NULL in USING Clause

Да суть вообще-то не в этом. Какой смысл писать EXECUTE IMMEDIATE с литералом (невaжно NULL не NULL) в качестве bind value?

SY.

а тот что этот литерал может подменятся внутри ява кода мысль не посещала? ;-)
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39711579
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBAshnikлитерал может подменятся внутри ява кода
Если изначально механизм построен на костылях для подпорки рук из жопы, то конечно СУБД кривая.
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #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
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39713177
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBAshnikВ этом меня тут пока никто не переубедил!Милый друг, но тебе же уже пояснили, что для того, чтобы выполнилось неявное преобразование должен быть известен тип того, что преобразовывается.
В отличие от других языков порграммрование, в Оракл нет специального типа для null.

Все измышлизмы "интуитивно-удобно" и "интуиция подсказывает" это только от скудоумия.
Для возможности предметно вести дискуссию рекомендуется хотя бы на нчальном уровне ознакомиться
1) как работают парсеры
2) как в парсерах работает механизм уведомления про ошибки
3) как работают неявные преобразования (тут надо почитать про более чем один язык)

Если ты достаточно долго останешься в АйТи, то тут возможны два варианта, либо тебе будет стыдно за свою бестолковость либо ты так и останешься... "непереубежденным".
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39713179
DBAshnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymoussoftwarerпопробуй угадать результат
Что тут угадывать? ORA-01722 или нормальное выполнение - как фишка ляжет.

у меня лично ORA-01722. Ну это уж не такое и жлобство, вообщем-то... Штука общеизвестная, имхо!

Но вот 5 + '3' = '53' это в оракле, конечно, чистейший криминал!!!
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39713182
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBAshnik??? это где такие бажищи!?!
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
scala> val x = 5 +"3"
x: String = 53

scala> val x = 5 +'3'
x: Int = 56

scala> val x = 5 + 3
x: Int = 8



И, конечно
Код: plsql
1.
2.
3.
4.
5.
scala> case class DBAshnik()
defined class DBAshnik

scala> val result = 1 * DBAshnik()
result: Int = 0


Знаешь почему 1 умножить на ДБАшника равно ноль? Потому что ты ноль, абсолютный ноль.
Главное, что работает неявное преобразование.
Код: plsql
1.
2.
scala> implicit def DBAshnikToInt(p: DBAshnik) = 0
DBAshnikToInt: (p: DBAshnik)Int

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

Все измышлизмы "интуитивно-удобно" и "интуиция подсказывает" это только от скудоумия.
Для возможности предметно вести дискуссию рекомендуется хотя бы на нчальном уровне ознакомиться
1) как работают парсеры
2) как в парсерах работает механизм уведомления про ошибки
3) как работают неявные преобразования (тут надо почитать про более чем один язык)

Если ты достаточно долго останешься в АйТи, то тут возможны два варианта, либо тебе будет стыдно за свою бестолковость либо ты так и останешься... "непереубежденным".

понятно, мог бы и покороче мысль выразить: "разберись cначала в механизме переключения телканалов плоскогубцами, сопляк" ;-)
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39713185
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBAshnikу меня лично ORA-01722.
Я бы на твоём месте не стал на это рассчитывать :) Завтра фишка может лечь другим образом :)
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39713188
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBAshnikНежелание ораклом сделать интуитивно-удобно равно и неадекватная диагностика ошибок оракл (как в этом, так и в других случаях) совершенно очевидно имеет место быть!!! В этом меня тут пока никто не переубедил!
DBAshnikИнтуиция подсказывает, что есть сравнивается, например, с date, то и подставляй - будь любезен - to_date() за человека автоматически, или это уже про запредельный hi-tec по твоему? ;-)
Предположим, Oracle услышал и решил реализовать идею.
Но просит уточнить: какой результат автоматического интуитивного to_date будет приемлем для литералов:
Код: plsql
1.
2.
3.
4.
1) 43375
2) 2458396
3) '2458396'
4) '04/11/18'
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39713191
DBAshnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbms_photoshop
scala> val x = 5 +"3"
x: String = 53

это вообще что за язык и где? Речь шла обо оракловском SQL и PL/SQL

dbms_photoshop
scala> case class DBAshnik()
defined class DBAshnik

с каких пор мы тут соскочили на обсуждение явы??!? Повторяю, речь шла обо оракловском SQL и PL/SQL!

dbms_photoshop
Главное, что работает неявное преобразование.

я _знаю_ про неявное преобразование! Не лечи меня, плиз!!!!

dbms_photoshop
Потому что ты ноль, абсолютный ноль.

ну всё ясно, хамить мы умеем. А убеждать коллег, пока нет, увы (может именно посему так долго и не повышают по службе? ;-) )
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39713194
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBAshnikу меня лично ORA-01722.
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
SQL> select /*+ ordered use_nl(t$2) ordered_predicates */ *
  from t$1, t$2 where t$1.i = t$2.i and t$1.j = t$2.j
;
         I          J          I J
---------- ---------- ---------- ---
         1          1          1 1

SQL> select /*+ ordered use_hash(t$2) ordered_predicates */ *
  from t$1, t$2 where t$1.i = t$2.i and t$1.j = t$2.j
;

select /*+ ordered use_hash(t$2) ordered_predicates */ *
  from t$1, t$2 where t$1.i = t$2.i and t$1.j = t$2.j

ORA-01722: неверное число

SQL> 
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39713202
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBAshnikэто вообще что за язык и где? Речь шла обо оракловском SQL и PL/SQLТам же вроде напимано на каждой второй строке.
DBAshnikс каких пор мы тут соскочили на обсуждение явы??!? Повторяю, речь шла обо оракловском SQL и PL/SQL!Другой язык был показан для расширения кругозора и видимо зря.
DBAshnikя _знаю_ про неявное преобразование! Не лечи меня, плиз!!!!То, что пациент не поддается лечению я уже понял.
DBAshnikну всё ясно, хамить мы умеем. А убеждать коллег, пока нет, увыПри чем здесь убеждать, были попытки объяснить. Разных людей, разными методами. Но для этого вопрошающий должен быть готов думать.
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39713205
DBAshnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymous Предположим, Oracle услышал и решил реализовать идею.
Но просит уточнить: какой результат автоматического интуитивного to_date будет приемлем для литералов:


я имел ввиду естественно только для случая null! Т.е.

1. Видим в using стоит ..., null,...
2. Видим тип колонки/переменной для :x - он, допустим, date! ( или number или char и т.д)
3. Подменяем (за дорогого и уважаемого пользователя, сделавшего нас миллиардерами! ;-) ) перед выполнением на ..., to_date(null),... ( или to_number(null) или to_char(null) и т.д. )

Что-то в этом роде, по логике. Но ещё раз: я в Оракле не работаю!!!!! Хотя, столь "сложнейший нечеловеческий хайтек" могли, бы наверное и запаять в 2018м годе то! Вот о чём речь то! И только об этом!!!
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39713208
DBAshnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymousDBAshnikу меня лично ORA-01722.
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
SQL> select /*+ ordered use_nl(t$2) ordered_predicates */ *
  from t$1, t$2 where t$1.i = t$2.i and t$1.j = t$2.j
;
         I          J          I J
---------- ---------- ---------- ---
         1          1          1 1

SQL> select /*+ ordered use_hash(t$2) ordered_predicates */ *
  from t$1, t$2 where t$1.i = t$2.i and t$1.j = t$2.j
;

select /*+ ordered use_hash(t$2) ordered_predicates */ *
  from t$1, t$2 where t$1.i = t$2.i and t$1.j = t$2.j

ORA-01722: неверное число

SQL> 



ну да, хинтами владеешь! Зачёт! Я, кстати, тоже. ;-)
Будем дальше сьезжать на смежные темы? Другие языки программирования? А можeт кто-нибудь хочет перетереть тут за неорганическую химию? ;-) (я люблю этот прекрасный предмет!!! :-) )
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39713210
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBAshnikну да, хинтами владеешь!
При чем тут хинты?
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39713212
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBAshnik2. Видим тип колонки/переменной для :xНеизлечимый кретинизм.
Код: plsql
1.
2.
3.
select :x from dual
union all
select :y from dual

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

Во-вторых, если бы мне как техлиду поступило такое предложение - я бы его отверг. Потому что практической пользы голый ноль, вероятность внести ошибку таки существует, а необходимые на реализацию этого время и силы куда лучше потратить на что-нибудь полезное.

Отдельно, я бы задумался, в каких ещё случаях может возникать подобная проблема и прикинул бы, насколько возможно реализовать для этого случая более внятную диагностику. По итогам, возможно, решил бы её сделать.
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39713219
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerОтдельно, я бы задумался, в каких ещё случаях может возникать подобная проблема и прикинул бы, насколько возможно реализовать для этого случая более внятную диагностику. По итогам, возможно, решил бы её сделать.
Ммм? Более внятную?
Смотрим:
https://docs.oracle.com/cd/B28359_01/appdev.111/b28370/literal.htm#LNPLS01326
откуда следует, что null - это литерал типа boolean.
boolean в oracle - не SQL-тип, по крайней мере, в тех версиях, с которыми я до сих пор работал :)
Отсюда следует:
Код: plaintext
PLS-00457:"expressions have to be of SQL types" 

Все предельно ясно, кмк.
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39713231
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymoussoftwarerОтдельно, я бы задумался, в каких ещё случаях может возникать подобная проблема и прикинул бы, насколько возможно реализовать для этого случая более внятную диагностику. По итогам, возможно, решил бы её сделать.
Все предельно ясно, кмк.
Хотя нет, не прав.
В PL/SQL null-expression тоже имеет специальную трактовку, можно было бы отдельным exception оформить:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
SQL> begin execute immediate q'[begin dbms_output.put_line(case when :1 is null then ':1 is null!' when :1 then ':1 is TRUE' when not :1 then ':1 is FALSE' end); end;]' using true; end;
  2  /
:1 is TRUE
PL/SQL procedure successfully completed

SQL> begin execute immediate q'[begin dbms_output.put_line(case when :1 is null then ':1 is null!' when :1 then ':1 is TRUE' when not :1 then ':1 is FALSE' end); end;]' using false; end;
  2  /
:1 is FALSE
PL/SQL procedure successfully completed

SQL> begin execute immediate q'[begin dbms_output.put_line(case when :1 is null then ':1 is null!' when :1 then ':1 is TRUE' when not :1 then ':1 is FALSE' end); end;]' using null; end;
  2  /
begin execute immediate q'[begin dbms_output.put_line(case when :1 is null then ':1 is null!' when :1 then ':1 is TRUE' when not :1 then ':1 is FALSE' end); end;]' using null; end;
ORA-06550: Строка 1, столбец 171:
PLS-00457: выражения должны иметь тип SQL
ORA-06550: Строка 1, столбец 7:
PL/SQL: Statement ignored

SQL> begin execute immediate q'[begin dbms_output.put_line(case when :1 is null then ':1 is null!' when :1 then ':1 is TRUE' when not :1 then ':1 is FALSE' end); end;]' using cast(null as boolean); end;
  2  /
:1 is null!
PL/SQL procedure successfully completed

SQL> 
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39713234
Vint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Господа, снимаю шляпу перед вашим долготерпением и желание наставить на пусть истинный) скупая мужская слеза катилась по моему лицу все три страницу сего занимательного чтива.
понимая вашу грусть по высокоинтеллектуальным беседам выражаю общую солидарность с направлением движения топикстартера в правильном направлении на Йух. Oracle совсем не торт... и творит всякие безобразия...)

dbms_photoshop - напиши вторую книгу. про оракловые заблуждения)) отличная вещь получится))

DBAshnik,
Ату их сирых и убогих... не понимают желания творца...))
может тебе стоит создать свою СУБД? в ней все будет так как хочешь только ты.. захватишь рынок импортозамещением, а то копаешься во всякой фигне... ты ж уже все знаешь, хинты вон выучил.
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39713240
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymousоткуда следует, что null - это литерал типа boolean.
В тех случаях, когда дока очевидно противоречит наблюдаемым фактам, я предпочитаю не до конца верить доке.

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
SQL> declare
  2    x integer := to_number(null);
  3    y integer := to_number(true);
  4  begin
  5    null;
  6  end;
  7  /

ORA-06550: Строка 3, столбец 16:
PLS-00306: ошибочно число или типы аргументов при обращении к 'TO_NUMBER'
ORA-06550: Строка 3, столбец 5:
PL/SQL: Item ignored



andrey_anonymousВсе предельно ясно, кмк.
Позволю себе вытащить одну свою старую реплику:

Уже давно, в юности, я прочитал в журнале короткую историю: якобы, в начале восьмидесятых годов в нью-йоркском метрополитене привычную для нас надпись "Выхода нет" заменили надписью "Выход с другой стороны", и уже в следующем году городская статистика продемонстрировала заметное снижение количества самоубийств. Оказалось, что даже такая мелочь способна повернуть к свету либо выступить в роли последней соломинки.

Только что я получил сообщение об ошибке. Цитирую: "Свойство XXX участвует в существующем подключении. Удаление невозможно". Казалось бы, всё понятно и просто, но прелесть ситуации придаёт тот факт, что я как раз таки пытался убрать свойство из существующего подключения, разорвать связь между ними. Мусор нельзя убрать из дома потому, что мусор находится в доме. Просто очаровательно. В результате я был как та учительница русского языка, впервые прыгнувшая с парашютом - изрядно потрясён, крайне удивлён и в высшей степени обескуражен, но вслух при этом хотелось говорить совсем по-другому.

Этот случай демонстрирует основную проблему большинства сообщений об ошибках, написанных программистами: сообщение описывает проблемную ситуацию, но не даёт информации, как её исправить. В результате пользователь чувствует себя примерно как водитель, встретивший знак "кирпич" посреди прямой, как стрела, автомагистрали. Ему нужно туда, вперёд, но движение невозможно. Без вариантов. Русским языком написано: не-воз-мож-но. Выхода нет, остаётся только выключить компьютер, выйти из офиса и повеситься на первом суку.

Чтобы не уподобляться авторам таких сообщений, напишу и то очевидное, что нужно делать. Сообщение об ошибке должно состоять из двух чётких частей: описание самой проблемы и перечисление возможных путей её решения. Например, как оказалось в моём случае, перед удалением свойства нужно было стереть его непустые значения в подключениях - ну так чёрт возьми, напишите об этом. А ещё лучше - вместо кнопки "ОК" всадите в диалог кнопку "стереть непустые значения в подключениях и таки удалить что просили". Дайте человеку выполнять свою работу вместо того, чтобы отгадывать понятные только автору ребусы.
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39713247
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerВ тех случаях, когда дока очевидно противоречит наблюдаемым фактам
Вообще говоря, имеем дело с новой фичей 12с.
Было:
Oracle® Database PL/SQL Language Reference
11g Release 2 (11.2)Restriction on bind_argument
The value of bind_argument cannot be TRUE, FALSE, or NULL . To pass the value NULL to the dynamic SQL statement, use an uninitialized variable where you want to use NULL, as in "Uninitialized Variable for NULL in USING Clause".


Стало:
12.1 Database PL/SQL Language ReferenceRestrictions on bind_argument

bind_argument cannot be an associative array indexed by string.

bind_argument cannot be the reserved word NULL.

To pass the value NULL to the dynamic SQL statement, use an uninitialized variable where you want to use NULL, as in Example 7-7.

Так что, быть может, и допилят, раз функционал все еще развивается.
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39713253
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NULL это больная тема в ORACLE и посему дока по NULL вызывает вопросы. Но ссылка на boolean literals это из серии all poodles are dogs but not all dogs are poodles. Иначе мы придем к тому что:

Код: plsql
1.
2.
3.
4.
5.
6.
DECLARE
    V_DT DATE;
BEGIN
    V_DT := NULL;
END;
/



преобразует boolean в date :). B PL/SQL есть понятие NULL value (определение конечно не проводится). B SQL определение simple expression гласит "A simple expression specifies a column, pseudocolumn, constant, sequence number, or null". Что такое null есс-но не приводится. Master Glossary гласит:

NULL value

Absence of a value in a column of a row. Nulls indicate missing, unknown, or inapplicable data. A null should not be used to imply any other value, such as zero.

Не густо, но отбросив "in a column of a row" имеем "Absence of a value" в рафинированном виде когда мы не знаем ни поле ни переменную и посему NULL value само по себе типа не имеет.

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

В первом случае надо выводить SQL тип литерала, будь то varchar2(0), новый какой-то тип null или что-то еще и к нему применять преобразование.
Во втором случае тоже надо какой-то тип, наверное, выводить, ну чтоб была конкретика какой именно не SQL тип.
А главное - зачем? Вся истерия ТС из-за работы с литералом.
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39713263
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerПозволю себе вытащить одну свою старую репликуТак как должно выглядеть сообщение так чтоб по-человечески? И должно ли оно вообще быть?

Какие в этих случаях дожны быть "правильные сообщения"?
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
SQL> declare
  2    lCnt pls_integer;
  3    lx dual%rowtype;
  4  begin
  5    select 1 into lx.dummy from dual;
  6    execute immediate 'select count(*) from dual where sysdate > :xDt  ' into lCnt using lx;
  7  end;
  8  /
declare
*
ERROR at line 1:
ORA-00932: inconsistent datatypes: expected DATE got PLSQL RECORD
ORA-06512: at line 6


SQL> declare
  2    lCnt pls_integer;
  3    type tp is record(dummy int);
  4    lx tp;
  5  begin
  6    select 1 into lx.dummy from dual;
  7    execute immediate 'select count(*) from dual where sysdate > :xDt  ' into lCnt using lx;
  8  end;
  9  /
  execute immediate 'select count(*) from dual where sysdate > :xDt  ' into lCnt using lx;
                                                                                       *
ERROR at line 7:
ORA-06550: line 7, column 88:
PLS-00457: expressions have to be of SQL types
ORA-06550: line 7, column 3:
PL/SQL: Statement ignored

Не забываем же еще что ошибки возникают на совершенно разном этапе - компиляция PL/SQL vs выпонение SQL.
Надо ли допускать такие вольности? Или все должно отлавливаться на одном этапе?

Что я хочу сказать - то, что ошибки должны быть предельно конкретными и максимально упрощающими нахождение проблемного места, но нельзя отметать того факта, что для понимания природы ошибки надо понимание техники работы.

softwarerСообщение об ошибке должно состоять из двух чётких частей: описание самой проблемы и перечисление возможных путей её решения.Ага, а еще пару-тройку баек про ошибку, описание best practices как избегать и ссылки на ликбез по всем сопутствующим вопросам.
При этом должно быть перечисление ВСЕХ возможных путей решение, ибо если уж мартышка не думает, то нельзя ставить её в тупиковыю ситуацию без рецепта для именно её специфики.

softwarerВ результате пользователь чувствует себяЧтоб пользователь лучше себя чувствовал (если речь про пользователя приложения а не его разработчика), то надо в любом случае преобразовывать ошибку в человеческий вид, пользователю эта вся ORA-хрень нафиг не сдалась.
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39713277
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbms_photoshopэта вся ORA-хрень нафиг не сдалась.
Тут есть сразу несколько аспектов, которые не следует смешивать.
1. Содержательность сообщения об ошибке - собственно, текст сообщения. Он должен быть совершенно различен в зависимости от контекста и "целевой аудитории". Техническому специалисту требуются технические детали в терминах системы, конечному пользователю - в терминах его бизнес-области, как в прокламации softwarer.
ORA-XXXXX - это именно сообщения в терминах СУБД, рассчитанные на квалифицированного специалиста.
В этом смысле все относительно благополучно, хотя и не без эксцессов.
Трактовка же конкретной исключительной ситуации в контексте и терминах бизнес-области - не тема для "ORA-хрени"

2. Собственно, обработка исключительной ситуации. Сколько копий сломано вокруг 'when others'... А между тем именно в этой части система исключений PL/SQL весьма далека от совершенства. В первую голову потому, что разработчик должен по сути угадать какие исключительные ситуации возможны в том или ином модуле. Оттого и популярен "others". Более современные языки этот вопрос решают посредством обязательной декларации возможных исключений на уровне интерфейса программной единицы.
Но в PL/SQL этого нет и вряд ли будет - проще язык сменить.
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39713291
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymousНо в PL/SQL этого нет и вряд ли будет - проще язык сменить.Не смотря на то, что в Oracle хранимки можно писать на Java, .Net, JavaScript/TypeScript, вряд ли удастся переманить народ с несовершенного PL/SQL. :)
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39713315
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymousТак что, быть может, и допилят, раз функционал все еще развивается.Это всего лишь следствие того, что More PL/SQL-Only Data Types Can Cross PL/SQL-to-SQL Interface .
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39713431
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBAshnik1. Видим в using стоит ..., null,...
2. Видим тип колонки/переменной для :x - он, допустим, date! ( или number или char и т.д)

Код: plsql
1.
execute immediate ' ... to_char(:x) ...' using null 


Какой тип?
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39713436
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ответ "мы не применяем функции к переменным в динамическом запросе" не рассматриваю. Если решение уже сделано проктологическо-ортопедическим методом, то и это тоже обязательно встретится.
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39713440
DBAshnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ElicDBAshnik2. Видим тип колонки/переменной для :xНеизлечимый кретинизм.
Код: plsql
1.
2.
3.
select :x from dual
union all
select :y from dual



ну хорошо, умник, поясни (даже не мне! а любому логически мыслящему челу, начинающему изучать оракл!). Почему конструкция типа

Код: plsql
1.
2.
3.
4.
5.
SELECT * FROM (
  select :x as Z from dual
    union all
  select :y as Z from dual
) WHERE Z IS NULL



не требует явного приведения типа навроде "TO_CHAR( Z ) IS NULL" ( TO_DATE(), TO_NUMBER() и т.п. ).
А в NDS это конвертация обязательна? ГДЕ ТУТ ЛОГИКА ТО????
Если все эти конвертирования TO_DATE(null), TO_NUMBER(null) (и тп.) дают И ТАК в итоге по любому NULL - то только я один вижу тут абсолютно ненужную "бюрократию"?!?

Я понимаю, конечно, что к этому тут многие видать привыкли за долгие века бурлацкого программисткого труда... Но есть же и такая вещь как прогресс всё-таки! А то уже пора вводить новый хеш-тэг #ДедыКонвертили ))))

P.S. и ещё раз, _последний раз_ повторяю: Я НЕ работаю в Оракл!!! Исходников этих в глаза не видел (подозреваю, что равно как и большинство тут дискутирующих, ибо не опенсоурс! ) Но _СИЛЬНО СОМНЕВАЮСЬ_ что это невозможно технически! Просто тупо забивают на удобство разработчика! Обычный унылый конформизм, короче.
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39713446
DBAshnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymous ...

Так что, быть может, и допилят, раз функционал все еще развивается.

во! Ну как и во многих других кривоватых ora-фишках: есть движения таки (от версии к версии)! Но меееееедленное, блин! :-(

P.S. банально, но как тут не вспомнить: "если тебе плюют в спину, значит ты впереди"(с) ! ;-)
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39713448
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBAshnikИ ТАК в итоге по любому NULL"любому логически мыслящему" это не очевидно.
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39713453
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBAshnikкак тут не вспомнить: "если тебе плюют в спину, значит ты впереди"(с)
Так ты, это, не плюй в спины.
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39713461
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBAshnik,

На тебе пример, поясни на его основе, как ленивые разработчики оракла должны были сделать тебе, паровозу прогресса, хорошо при использовании нетипизированых литералов.

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
create or replace package tst is
  function f(x number) return number;
  function f(x date) return date;
end;
/

create or replace package body tst is
  function f(x number) return number is
  begin
    return 3.14-nvl(x,1.07);
  end f;
  
  function f(x date) return date is
  begin
    return nvl(x, sysdate) + interval '1' day;
  end f;
end;
/

declare 
  v anydata;
begin
  execute immediate 'select tst.f(:x) xx from dual' into v using null;
--  execute immediate 'select tst.f(:x) xx from dual' into v using '20181005';
end;
/
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39713465
DBAshnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer ... якобы, в начале восьмидесятых годов в нью-йоркском метрополитене привычную для нас надпись "Выхода нет" заменили надписью "Выход с другой стороны", и уже в следующем году городская статистика продемонстрировала заметное снижение количества самоубийств. Оказалось, что даже такая мелочь способна повернуть к свету либо выступить в роли последней соломинки.
...

отлично-отлично! Вообще супер! Спасибо огромное за мего-наглядный пример!!! Честно говоря, меня уже давно подмывает написать серьёзный технико-психологический трактат о типичных психологических проблемах в АйТи. (не в последнюю очередь затронув тему почему, по отзывам многочисленных профессиональных психологов, у ойтишной братии, при прочих равных, зачастую так скверно обстоят дела с противоположным полом! ;-) ). Это вот именно и проблема многих фриков-умников: по настоящему умный человек никогда не будет лезть в технические дебри за аргументацией, высокомерно ожидая от всех и каждого своего высокого уровня, но постарается спуститься на уровень собеседника, сумеет взглянуть на вещи _его_(!) глазами и терпеливо сможет растолковать порой даже самую сложную проблему _простым_ языком аппелируя не консервативному "ну вот так есть и всегда так было" лишь к логике и здравому смыслу.
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39713468
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBAshnikПочему конструкция типа

Код: plsql
1.
2.
3.
4.
5.
SELECT * FROM (
  select :x as Z from dual
    union all
  select :y as Z from dual
) WHERE Z IS NULL


не требует явного приведения типа навроде "TO_CHAR( Z ) IS NULL" ( TO_DATE(), TO_NUMBER() и т.п. ).

прибейте x и y переменные двух типов, между которыми нет implicit conversion, скажем, number и date - получите ответ.
DBAshnikА в NDS это конвертация обязательна? ГДЕ ТУТ ЛОГИКА ТО????
1. Не конвертация.
Определение типа переменной привязки.
Вашему запросу (выше) без привязанных типизованных переменных тоже ничего не светит.
2. Не стоит путать SQL и PL/SQL.
В SQL никакого NDS нет - это конструкция PL/SQL (и компонент "FACILITY" кода исключения, положившего начало этому топику, какбэ намекает: не ORA, а PLS).
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39713479
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBAshnikпостарается спуститься на уровень собеседника
Ты уверен, что на твой уровень стоит спускаться?

Объяснять бушмену почему нельзя попасть стрелой в Солнце, долгое, нудное и почти бессмысленное занятие, требующее сначала дать ему образование на уровне достаточном для восприятия хотя бы терминологии объясняющего.

Но ты продолжай винить всё вокруг в том, что твоя стрела падает на землю и не сообщает истинной причины, почему она не долетела.
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39713480
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBAshnikи терпеливо сможет растолковать
Постарайтесь взглянуть на проблему с другой стороны: "растолковать" что-либо возможно только тому, кто готов воспринимать пусть даже самые разжеванные и упрощенные объяснения, думать и тем самым "расти над собой".
Растолковать же что-либо человеку, упорствующему в собственной интерпретации фактов и не готовому осмысливать услышанное, практически невозможно.
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39713483
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBAshnikНо _СИЛЬНО СОМНЕВАЮСЬ_ что это невозможно технически!Это от скудоумия.
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39713484
DBAshnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
envDBAshnik,

На тебе пример, поясни на его основе, как ленивые разработчики оракла должны были сделать тебе, паровозу прогресса, хорошо при использовании нетипизированых литералов.

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
create or replace package tst is
  function f(x number) return number;
  function f(x date) return date;
end;
/

create or replace package body tst is
  function f(x number) return number is
  begin
    return 3.14-nvl(x,1.07);
  end f;
  
  function f(x date) return date is
  begin
    return nvl(x, sysdate) + interval '1' day;
  end f;
end;
/

declare 
  v anydata;
begin
  execute immediate 'select tst.f(:x) xx from dual' into v using null;
--  execute immediate 'select tst.f(:x) xx from dual' into v using '20181005';
end;
/



ну очевидно, что в том редком случае ( не ошибусь, думаю, что проблема вызова перегруженых функций пакета это даже не 0.1% процента всех случаев применения NDS + "using" !!! ) , можно и выбросить _ясную и понятную_ error-мессагу, что мол " function ambiguously defined" (по аноглогии с пресловутым "column ambiguously defined" , которая возникает, как известно, отнюдь не во всех случаях когда не указан квалификатор таблицы и т.п. myTbl.MyColumn, а лишь при необходимости )

Я устал говорить: я НЕ ЗНАЮ как конкретно запаять это в оракле. ( когда меня устроят туда на летние сезонные подработки, сообщу вам тут... ))) если разрешат... ))) ) Но я знаю одно: "кто хочет что-то сделать - ищет средства для этого! Кто ничего не хочет - ищет причины"(с)
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39713485
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBAshnikКто ничего не хочет - ищет причины
Так прекрати искать причины.
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39713486
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
envтебе, паровозу прогресса
Неудачно, кмк.
Сферический Паровоз в вакууме - это нечто, способное что-то двигать куда-то в даль.
Персонаж же, созданный для нас ТС - типовой потребитель. Слегка перефразируя классиков - этакий "кадавр, неудовлетворенный ошибочно".
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39713487
DBAshnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
envDBAshnikпостарается спуститься на уровень собеседника
Ты уверен, что на твой уровень стоит спускаться?

Объяснять бушмену почему нельзя попасть стрелой в Солнце, долгое, нудное и почти бессмысленное занятие, требующее сначала дать ему образование на уровне достаточном для восприятия хотя бы терминологии объясняющего.

Но ты продолжай винить всё вокруг в том, что твоя стрела падает на землю и не сообщает истинной причины, почему она не долетела.

ну я же говорю: ВЫСОКОМЕРИЕ!
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39713494
DBAshnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-2-DBAshnikИ ТАК в итоге по любому NULL"любому логически мыслящему" это не очевидно.

то есть какая то из функций TO_DATE(null), TO_NUMBER(null) может дать в результате НЕ Null ?!??! Вот отсюда по-подробнее пожалуйста? ;-)
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39713497
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBAshnikну я же говорю: ВЫСОКОМЕРИЕ!
Да, именно, твоё высокомерие в убеждении, что твоя точка зрения единственно верная, без желания понять отвечающих и подумать - удручает.
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39713500
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBAshnikто есть какая то из функций TO_DATE(null), TO_NUMBER(null) может дать в результате НЕ Null ?В оралке не только нет нетипизованных переменных, но нетипизованных колонок. Какого типа должен получиться результат юниона разных типов?
Или выражения select sysdate-:var ?
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39713507
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBAshnikможет дать в результате НЕ Null ?!??! Вот отсюда по-подробнее пожалуйста? ;-)
Null Null-у Null
Еще раз, мееедленно: берете свой тесткейс и прибиваете x и y типов number и date.
Инициализируете NULL-ами.
Выполняете.
Дальше в идеале Вы должны осознать, что NULL - это особое ТИПИЗИРОВАННОЕ не-значение, хотя и представленное одним и тем же литералом, независимо от типа.
Собственно, если бы "ленивые программисты oracle" не вводили бы единое ключевое слово/литерал NULL, а заставили бы писать "null_date", "null_number" и т.д., то у Вас путаницы бы не случилось и не пришлось бы осваивать сложные материи null-полиморфизма :)
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39713508
DBAshnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-2-DBAshnikто есть какая то из функций TO_DATE(null), TO_NUMBER(null) может дать в результате НЕ Null ?В оралке не только нет нетипизованных переменных, но нетипизованных колонок. Какого типа должен получиться результат юниона разных типов?
Или выражения select sysdate-:var ?

вы опять заводите "рака за камень" уходя в детали. Мой спич _ЛИШЬ ТОЛЬКО_ о том, что если человече в состоянии вместо "null" подставить "to_date(null)" (ну или что там подходит по смыслу) то это же действо в состоянии сделать и fucking-computer в 21м веке!!!!!!! Даже не нося при этом гордое звание искусственного интеллекта! ;-)))
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39713512
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBAshnikто это же действо в состоянии сделать и fucking-computer в 21м веке!!!!!!! Даже не нося при этом гордое звание искусственного интеллекта! ;-)))
Вам уже не один раз показали, что общее решение указанной задачи требует не просто интеллекта, но интеллекта, способного принимать решения в области создания ПО.
Однажды такой интеллект появится и Вы, если доживете, потеряете работу.
Потому предлагаю Вам слегка остыть в своем потребительском запале.
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39713514
DBAshnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymousenvтебе, паровозу прогресса
Неудачно, кмк.
Сферический Паровоз в вакууме - это нечто, способное что-то двигать куда-то в даль.
Персонаж же, созданный для нас ТС - типовой потребитель. Слегка перефразируя классиков - этакий "кадавр, неудовлетворенный ошибочно".

И да! Я таки сознательно (откинув все свои скилзы) становлюсь сейсас на позиции типового потребителя! Совершенно этого не стесняясь! Убеждён, что по настоящему хороший айтишник _обязан_ уметь это делать! Делать для юзера (платяшего бабки!) ту самую пресловутую кнопку "сделай мне всё зае...сь!" ))) А не входить блин в положение его величества архитектора софта и высокомерно чморя невежей-юзеров за непонимание/незнание всех тонкостей механизма переключения телевизора плоскогубцами! )))))
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39713515
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBAshnik-2-Или выражения select sysdate-:var ?
если человече в состояниичто подставить, тудате или тунумбер и почему?
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39713517
DBAshnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymous
Однажды такой интеллект появится и Вы, если доживете, потеряете работу.
Потому предлагаю Вам слегка остыть в своем потребительском запале.

гы гы гы! ))) Ну спасибо хоть за откровенность! )))
Сплошные неолуддиты тут, походу )))))
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39713528
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBAshnikА не входить блин в положение его величества архитектора софта и высокомерно чморя невежей-юзеров за непонимание/незнание всех тонкостей механизма переключения телевизора плоскогубцами!
Так перестань переключать телевизор плоскогубцами, чморя невежей-кодеров за твоё нежелание сделать хорошо без динамического sql и литералов в java-коде.
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39713533
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И, объясни, чем твои вопли по поводу высокомерия и нежелания делать хорошо для тебя, отличаются в твоей же позиции:
DBAshnikпотому, что это Talend! И там я такое делать не могу, к сожалению (в данном проекте, по крайней мере).
Что ж ты себе тут не ответил
DBAshnikкто хочет что-то сделать - ищет средства для этого!?
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39713570
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBAshnikЯ таки сознательно (откинув все свои скилзы) становлюсь сейсас на позиции типового потребителя!
Ок. Принято.
Как Потребитель, Вы обязаны выполнять инструкцию по эксплуатации, в противном случае поставщик товара не несет ответственности и отказывает в гарантийном обслуживании.
В инструкции особо указано, что использовать null в NDS указанным образом нельзя.
Претензия отклонена, вопрос закрыт.
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39713632
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBAshnikГДЕ ТУТ ЛОГИКА ТО????В запросе тип выводится на основании запроса (и кстати бывает когда неявное преобразование не может быть выполнено, да!), в динамике тип выводится на основании того что передается.
Не на основании запроса. Это достаточно простые слова для тебя?
Ты же понимаешь, что перед выполнением надо связать, а перед этим надо знать что связываем.
Как я уже раза три тут писал можно усложнять и выводить varchar2(0) или что-то еще, но зачем? Вероятно это породит еще больше проблем.
DBAshnikЧестно говоря, меня уже давно подмывает написать серьёзный технико-психологический трактат о типичных психологических проблемах в АйТи.С нетерпением жду. Надеюсь ты еще сделаешь презентацию. Не забудь упомянуть о персонажах, которые ставят в конце предложения "!!!!", "????", ")))))" и пишут капсом.
DBAshnik"сделай мне всё зае...сь!"Ну так чего ты вместо того, чтоб так делать, пишешь говнокод и потом размазываешь по форуму фрустрацию обвиняя всех и вся в своей неспособности к дебагу?
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39713664
DBAshnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymous и отказывает в гарантийном обслуживании.
разве речь идёт о гарантийном обслуживании???
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39713667
DBAshnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbms_photoshop а перед этим надо знать что связываем.
Cвязываем конкретно NULL ! "Это достаточно простые слова для тебя?"(c) ;-)

dbms_photoshop Не забудь упомянуть о персонажах, которые ставят в конце предложения "!!!!", "????", ")))))" и пишут капсом.
я всё-таки начну с безэмоциональных шизоидных фриков!!! ;-)
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39713669
DBAshnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вообщем, думаю, мою позицию все услышали, кто _хотел_! ;-)
Я услышал ваши менения.
И поскольку пошло совсем уже беспредметное препирательство, то тему закрываю.
Всем хороших выходных! :-)
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39713681
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBAshnikandrey_anonymous и отказывает в гарантийном обслуживании.
разве речь идёт о гарантийном обслуживании???
В роли потребителя у Вас всего три пути:
1. Если речь об исправлении недостатка продукта - то это запрос на обслуживание, SR.
Как потребитель, Вы нарушили инструкцию и будете 100% завернуты.
2. Если речь идет о расширении функционала - то это запрос на доработку, ER.
Попробуйте оформить, оплатить (по отдельному договору, ессно) - и будете наслаждаться "хайтеком".
3. Сменить поставщика.
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39713685
SkilledJunior
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DBAshnik,

Когда ты объявляешь переменную, ты должен указать ее тип, также ты можешь сказать компилятору - определи тип по типу первого значения присваиваемому этой переменной, но если первое значение типа не имеет, сколько памяти должно быть выделено под хранение значения переменной и какого она типа?
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39713706
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBAshnikто тему закрываюЖдём следующего поста "Я **** дорогая редакция! (в очередной раз от невозможности закрыть тему на sql.ru)"

DBAshnikЯ услышал ваши менения.
И поскольку пошло совсем уже беспредметное препирательство
Перевожу: не читал, но осуждаю.

Находясь на позиции потребителя ты требуешь сделать удобное для тебя, при этом свою систему с позиции разработчика менять не хочешь. Удобно.
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39713716
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBAshnikCвязываем конкретно NULL ! "Это достаточно простые слова для тебя?"(c) ;-)Слова вроде простые, но логика/необходимость видится, вроде, только тебе.
Замени в своей генерилке null на две кавычки и будь счастлив.
...
Рейтинг: 0 / 0
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #39713898
jan2ary
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBAshnik,

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


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