Страница 1 из 1

execute statement литерал странность

Добавлено: 26 сен 2007, 13:55
Dreamer
обнаружил такую проблему, пусть есть проца возвращающая набор состоящий из одного литерала 'qwerty':

Код: Выделить всё

create procedure test
returns (c varchar(100))
as
begin
  for
     execute statement 'select ''qwerty'' from rdb$database'
  into
     :c
  do
      suspend;
end
тогда запрос:

Код: Выделить всё

select * from test
вызовет ошибку: variable type (position 1) in EXECUTE ... does not match returned column type.

В чем дело - литералы в динамическом запросе объявляются как-то по другому ?[/code][/quote]

Добавлено: 26 сен 2007, 15:42
kdv
выполни select 'querty' from rdb$database, и посмотри на тип столбца.

Добавлено: 26 сен 2007, 16:40
Dreamer
и точно, тип CHAR(6). спасибо.

Добавлено: 26 сен 2007, 18:00
WildSery
kdv писал(а):выполни select 'querty' from rdb$database, и посмотри на тип столбца.
Кстати, а почему у меня на 2.0.3 не ругается?