powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Column unknown. X if (x =(select .... (Firebird 2.5)
15 сообщений из 15, страница 1 из 1
Column unknown. X if (x =(select .... (Firebird 2.5)
    #38385535
m7m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сервер LI-V6.3.3.26655 Firebird 2.5
клиент 2.5.1.26351
IBExpert

Процедура
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
create or alter procedure Test_C
as
declare variable X varchar(16);
begin

  if ((select '123' from Rdb$Database) = x) then
  begin
    exit;
  end
end


компилится без проблем

однако при попытке скомпилировать процедуру
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
create or alter procedure Test_C
as
declare variable X varchar(16);
begin

  if (x =(select '123' from Rdb$Database)) then
  begin
    exit;
  end
end


получаю Column unknown. X

Мне кажется что это как-то неправильно
...
Рейтинг: 0 / 0
Column unknown. X if (x =(select .... (Firebird 2.5)
    #38385680
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m7m,

Код: plsql
1.
 if (:x = (select '123' from Rdb$Database)) then
...
Рейтинг: 0 / 0
Column unknown. X if (x =(select .... (Firebird 2.5)
    #38385735
m7m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkMasterm7m,

Код: plsql
1.
 if (:x = (select '123' from Rdb$Database)) then



зачем????
...
Рейтинг: 0 / 0
Column unknown. X if (x =(select .... (Firebird 2.5)
    #38385739
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m7m,

а по мне так и
if ((select '123' from Rdb$Database) = x) then
криво. сделай
select '123' from rdb$database
into :x

а дальше уже if (:x ...) сколько угодно.
...
Рейтинг: 0 / 0
Column unknown. X if (x =(select .... (Firebird 2.5)
    #38385753
m7m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvm7m,

а по мне так и
if ((select '123' from Rdb$Database) = x) then
криво. сделай
select '123' from rdb$database
into :x

а дальше уже if (:x ...) сколько угодно.

по мне тоже криво, однако это не повод получать Column unknown. X
...
Рейтинг: 0 / 0
Column unknown. X if (x =(select .... (Firebird 2.5)
    #38385754
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m7m,

Скомпилится ;)

Код: plsql
1.
2.
x='345';
if (:x=(select '123' from rdb$database)) then 
...
Рейтинг: 0 / 0
Column unknown. X if (x =(select .... (Firebird 2.5)
    #38385770
m7m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я совсем не спрашивал как:
-скомпилить процедуру.
-обойти данную проблему
-написать правильный код
...........................


я утверждаю что это неправильное поведение FB
и хочу узнать прав я в своем утверждении или нет
...
Рейтинг: 0 / 0
Column unknown. X if (x =(select .... (Firebird 2.5)
    #38385782
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m7m,

По моему прав.
...
Рейтинг: 0 / 0
Column unknown. X if (x =(select .... (Firebird 2.5)
    #38385813
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m7m,

похоже, что прав. как минимум потому, что условие
if (var1 = var2) then
компилируется и без двоеточий. А вот если вместо var2 указан (select...) - то уже нет.
как-то тут без : парсер не понимает, что var1 это переменная, а не столбец.
...
Рейтинг: 0 / 0
Column unknown. X if (x =(select .... (Firebird 2.5)
    #38385818
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m7mи хочу узнать прав я в своем утверждении или нет
а дальше что будет? багрепорт в трекер, забивание болта, или ...?
...
Рейтинг: 0 / 0
Column unknown. X if (x =(select .... (Firebird 2.5)
    #38385826
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv,

Я бы вообще такую конструкцию (сравнение чего-то с результатом выборки) выбросил. Имхо.
...
Рейтинг: 0 / 0
Column unknown. X if (x =(select .... (Firebird 2.5)
    #38385835
m7m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvm7mи хочу узнать прав я в своем утверждении или нет
а дальше что будет? багрепорт в трекер, забивание болта, или ...?

Если прав, то будет просьба к владеющим английским оформить багрепорт в трекер
...
Рейтинг: 0 / 0
Column unknown. X if (x =(select .... (Firebird 2.5)
    #38386229
m7m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну в общем вот CORE-4204
простите за мой английский
...
Рейтинг: 0 / 0
Column unknown. X if (x =(select .... (Firebird 2.5)
    #38386240
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
дополнил тикет. Хотя лично я не считаю это багом :-)
...
Рейтинг: 0 / 0
Column unknown. X if (x =(select .... (Firebird 2.5)
    #38386244
m7m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitr,

спасибо, мой английский не позволил мне написать подробнее :( :(
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Column unknown. X if (x =(select .... (Firebird 2.5)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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