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


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