Создание таблицы из представления — различия между версиями
Материал из wiki.standart-n.ru
Aleksnick (обсуждение | вклад) (Новая страница: « ==Пример== <pre> select * from updpr_view2table('vw_warebaseparts','warebaseparts'); </pre> ==Установка== <pre> SET TERM ^ ; create or alter pr…») |
Aleksnick (обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
+ | ==Описание== | ||
+ | Процедура помогает сделать из представления таблицу с той же самой структурой. | ||
==Пример== | ==Пример== | ||
Строка 4: | Строка 6: | ||
select * from updpr_view2table('vw_warebaseparts','warebaseparts'); | select * from updpr_view2table('vw_warebaseparts','warebaseparts'); | ||
</pre> | </pre> | ||
− | |||
==Установка== | ==Установка== |
Версия 16:25, 7 марта 2016
Описание
Процедура помогает сделать из представления таблицу с той же самой структурой.
Пример
select * from updpr_view2table('vw_warebaseparts','warebaseparts');
Установка
SET TERM ^ ; create or alter procedure UPDPR_VIEW2TABLE ( VIEW_NAME DM_TEXT not null, TABLE_NAME DM_TEXT not null) returns ( TEXT DM_TEXT_BIG) as declare variable FIELD_NAME DM_TEXT; declare variable FIELD_SOURCE DM_TEXT; declare variable VARS DM_TEXT_BIG; begin select 'CREATE TABLE ' || :table_name || ' (' from rdb$database into :text; select list(rf.rdb$field_name || ' ' || rf.rdb$field_source, ',') from ( select * from rdb$relation_fields rrf where 1=1 and rrf.rdb$relation_name=upper(:view_name) order by rrf.rdb$field_position asc ) rf into :vars; text = text || vars || ');'; suspend; end^ SET TERM ; ^ /* Existing privileges on this procedure */ GRANT EXECUTE ON PROCEDURE UPDPR_VIEW2TABLE TO SYSDBA;