Как создать передставление таблицы из одной БД на таблицу в другой БД

Доброе время суток форумчане.
Есть две БД (FireBird), в одной хранится оборудование, в другой лаборатории, в которой это оборудование находится, и мне нужно одиним запросом, объединить эту инфу.
Я думал в одной из БД (с оборудованием) создать view, на лаборатории (из другой БД).
У меня рабочий запрос для вынимания лабораторий:

EXECUTE BLOCK
RETURNS(ID integer,  NAME_SHORT VARCHAR(20))
AS
BEGIN
FOR EXECUTE STATEMENT 'SELECT ID, NAME_SHORT FROM LABORATORY'
ON EXTERNAL '…:D:\Database\Plan.fdb' AS USER 'SYSDBA' PASSWORD '…'
INTO  :ID, :NAME_SHORT
DO SUSPEND;
END

Мне нужно создать из него представление, но наверное данный код нельзя так просто вставить в view. При вставке в view, вылетает ошибка

«Invalid token. Dynamic SQL Error. SQL error code = -104. Token unknown - line 7, column 1. EXECUTE.»

Вопроса 3:

  • можно ли такое view вообще делать?

  • как в view передать путь к БД (потому что он будет меняться)

  • может есть другой путь?
    Или просто в IBDataSet запихнуть

    EXECUTE BLOCK RETURNS(NAME varchar(260), NAME_SHORT VARCHAR(20)) AS declare procedure qqq RETURNS(ID integer, NAME_SHORT VARCHAR(20)) AS BEGIN FOR EXECUTE STATEMENT 'SELECT ID, NAME_SHORT FROM LABORATORY' ON EXTERNAL '...D:\Database\Plan.fdb' AS USER 'SYSDBA' PASSWORD '...' INTO :ID, :NAME_SHORT DO SUSPEND; end begin for select q.NAME , w.NAME_SHORT from EQUIPMENT q left join qqq w on w.id = q.HOST_LABORATORY into NAME, NAME_SHORT do suspend; END

но тогда мне придется в первом "RETURNS(..." перечисля все поля таблицы оборудования


Ответы (0 шт):