Firebird-2.1.5.18496_0_x64_RC1
Задача комплексная, не буду описывать всех этапов, опишу только ошибку, с которой столкнулся.
Есть View, в ней некоторые поля выбираются используя UDF. DLLки где описана эта UDF уже нет. Соответственно сделать селект из нее не получается. Но мне то селект не нужен. Я хочу ее удалить, а получаю ту же ошибку, что и при селекте.
DROP VIEW STATINF_V;
invalid request BLR at offset 2.
function GET_INTBLOCK_BETWEENDOTSDEMO is not defined.
module name or entrypoint could not be found.
Решил как-то так, но боязно мне очень.
delete
from RDB$RELATION_FIELDS
where RDB$RELATION_NAME = 'STATINF_V';
delete from RDB$FIELDS f
where exists (select RDB$FIELD_NAME
from RDB$RELATION_FIELDS rf
where rf.RDB$FIELD_SOURCE = f.RDB$FIELD_NAME and
trim(rf.RDB$BASE_FIELD) = '' and
RDB$RELATION_NAME = 'STATINF_V');
delete
from RDB$VIEW_RELATIONS
where RDB$VIEW_NAME = 'STATINF_V';
commit;
update RDB$RELATIONS set
RDB$RELATION_ID = null
where RDB$RELATION_NAME = 'STATINF_V';
commit;
delete
from RDB$RELATIONS
where RDB$RELATION_NAME = 'STATINF_V';
delete
from RDB$RELATION_FIELDS
where RDB$RELATION_NAME = 'STATINF_V';
commit;
Может как-то все же ее можно по честному удалить?
Ну или посмотрите мой код, все ли правильно?