Firebird 2.1 — Простой ВЫБОР

Я хотел бы объединить некоторые данные, но простой пример выбора не работает. Выбор существующих таблиц работает нормально...

SELECT 1 as foo

Сообщение:

can't format message 13:896 -- message file C:\xxxx\firebird.msg not found.
Dynamic SQL Error.
SQL error code = -104.
corrupt pool.

В MySQL и Postgres нет проблем с этими простыми select..

Спасибо за помощь!


person Rookee    schedule 05.11.2013    source источник


Ответы (2)


Для Firebird (как и для многих других СУБД) требуется условие FROM. В Oracle вы бы использовали таблицу DUAL, в Firebird вы можете использовать RDB$DATABASE

SELECT 1 as foo
FROM RDB$DATABASE;

Поскольку RDB$DATABASE всегда содержит только одну строку, это работает так же, как таблица Oracle DUAL (или SYSDUMMY IBM).

person a_horse_with_no_name    schedule 05.11.2013
comment
Нет ли нормального способа простого выбора...? Может быть, SELECT CURRENT_TIMESTAMP, как сейчас, или как-то иначе? - person Rookee; 05.11.2013
comment
@Rookee: нет, другого пути нет (это это нормальный способ). Оператор SELECT всегда требует предложения FROM (это соответствует стандарту SQL). - person a_horse_with_no_name; 05.11.2013

Это неверный синтаксис для firebird. Правильно SELECT 1 as foo from RDB$DATABASE. RDB$DATABASE это системная таблица для этой СУБД. Вы можете прочитать о системных таблицах FIREBIRD здесь.

person Michael Kazarian    schedule 05.11.2013