2017-01-30 26 views
1

Мне нужно получить DLL или инструкцию SELECT, используемые для представления из моей БД. Как я могу это получить?Как извлечь вид DDL на Firebird

Мой Firebird версии: 2,5

+0

Большинство инструментов администрирования БД (например, Flamerobin для Firebird) имеют опцию «view source» для объектов - используйте это. Или вы можете использовать инструмент командной строки 'isql', который поставляется с Firebird для извлечения метаданных (см. Руководство для точного синтаксиса). – ain

ответ

0

Быстрый и грязный способ получить отборное заявление о представлении заключается в использовании:

select rdb$view_source 
from rdb$relations 
where rdb$relation_name = '<your view name>' 

Обратите внимание, что имя чувствительно к регистру, а имена объектов, которые могут используется без кавычек, здесь должны быть прописные буквы.

В столбце rdb$view_source содержит только часть после as -clause из create view -statement (избранных, и, возможно, пункт with check option).

Обратите внимание, что некоторые поставщики приложений иногда удаляют источник просмотра, в этом случае нет реального способа вернуть исходный DDL, за исключением декомпиляции двоичной скомпилированной формы в rdb$view_blr. У меня нет опыта с этим.

Такие инструменты, как Flame Robin, также предоставляют способы получения DDL: разверните вкладку просмотра, щелкните правой кнопкой мыши на представлении, выберите свойства, а затем вкладку DDL. Обратите внимание, что это имеет те же ограничения, что и выше: если источник просмотра был удален, он не будет доступен.

В ISQL вы можете использовать:

show view <your view name>; 

Опять: применяется такое же ограничение.

Вы также можете использовать ISQL для извлечения полной DDL всей базы данных с

isql -ex -u sysdba -p password localhost:<path to your db> 

Но опять же, если просмотреть исходный код был удален, то это не поможет.

+0

Команда isql решила мою проблему. Спасибо! –