У нас "Галактика" крутится на оракле, мы периодически чистим журнал с загрузкой удалённых записей в первасивоскую базу.
Проблема такого подхода в том, что в словаре отсутствует куча "своих" таблиц, т.к. мы докомпилировали словарь.
Я пытался решить её так: поднял копию базы на тестовом сервере, truncate-нул таблицы скриптом, который сформировал вот так:
Код: Выделить всё
SELECT 'TRUNCATE TABLE GAL.' || XF$NAME||';' from GAL.X$FILES WHERE XF$CODE >200 OR XF$CODE=48 OR XF$CODE=63
union all
SELECT 'TRUNCATE TABLE GAL.x$journal;' from dual
union all
SELECT 'TRUNCATE TABLE GAL.SYS#MEMO;' from dual
union all
SELECT 'TRUNCATE TABLE GAL.' || table_name || ';' from dba_tables where owner='GAL' and table_name like 'J$%'
union all
SELECT 'TRUNCATE TABLE GAL.' || table_name || ';' from dba_tables where owner='GAL' and table_name like 'TMP#%'
union all
SELECT 'commit;' from dual;
Код: Выделить всё
[Export]
OutFile=d:\dictexp\currdict.dbi
Title='Current dict'
ExpType=0
Components=*
AllowUserTables=ON
Но она то падает с рантаймом, то говорит, что не может создать DSN: "Database is not compatible for create DSN. Not encoding in DB."
Может, есть более адекватный способ решить эту задачу? Или я чего-то перемудрил?