powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
25 сообщений из 112, страница 3 из 5
Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
    #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
25 сообщений из 112, страница 3 из 5
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Я ****(запикано) дорогая редакция!" (в очередной раз с оракловских сообщениях об ошибках)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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