Мне нужно получить DLL или инструкцию SELECT, используемые для представления из моей БД. Как я могу это получить?Как извлечь вид DDL на Firebird
Мой Firebird версии: 2,5
Мне нужно получить DLL или инструкцию SELECT, используемые для представления из моей БД. Как я могу это получить?Как извлечь вид DDL на Firebird
Мой Firebird версии: 2,5
Быстрый и грязный способ получить отборное заявление о представлении заключается в использовании:
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>
Но опять же, если просмотреть исходный код был удален, то это не поможет.
Команда isql решила мою проблему. Спасибо! –
Большинство инструментов администрирования БД (например, Flamerobin для Firebird) имеют опцию «view source» для объектов - используйте это. Или вы можете использовать инструмент командной строки 'isql', который поставляется с Firebird для извлечения метаданных (см. Руководство для точного синтаксиса). – ain