Проблема 

В логе адаптера NavXLv5 возникает ошибка вида:

17.11.2017 14:52:53.016 : e    Нарушена целостность таблицы LIC_BUS_OBJ_ALIAS. Работа с внешними системами запрещена

Решение

  1. Остановите работу адаптера NavXLv5.
  2. Выполните скрипт ниже.

    DECLARE
        vCnt number;
    begin
    for cur in (
        select 'vw_FX'as obj_alias,'FX' as obj_name from dual union all
        select 'vw_DP'as obj_alias,'DP' as obj_name from dual union all
        select 'vw_T_TRANSACTIONS'as obj_alias,'TRANSACTIONS' as obj_name from dual union all
        select 'vw_MRG_FX'as obj_alias,'FX' as obj_name from dual union all
        select 'vw_MRG_DP'as obj_alias,'DP' as obj_name from dual union all
        select 'vw_MRG_ORDERS'as obj_alias,'ORDERS' as obj_name from dual union all
        select 'vw_MRG_CUSTOMER'as obj_alias,'CUSTOMER' as obj_name from dual union all
        select 'vw_SEC_DEAL'as obj_alias,'SEC_DEAL' as obj_name from dual union all
        select 'vw_INET_CLIENTS'as obj_alias,'CUSTOMER' as obj_name from dual union all
        select 'vw_SEC_MARKET'as obj_alias,'ONLINEQUOTATIONS' as obj_name from dual union all
        select 'vw_CUSTOMER'as obj_alias,'CUSTOMER' as obj_name from dual union all
        select 'vw_INSTRUMENT'as obj_alias,'INSTRUMENT' as obj_name from dual union all
        select 'vw_NOSTRO'as obj_alias,'NOSTRO' as obj_name from dual union all
        select 'vw_CBRATES'as obj_alias,'CBRATES' as obj_name from dual union all
        select 'vw_PAYMENTS'as obj_alias,'PAYMENTS' as obj_name from dual union all
        select 'CLIENTS'as obj_alias,'CUSTOMER' as obj_name from dual union all
        select 'DEALS'as obj_alias,'FX' as obj_name from dual union all
        select 'ORDERS'as obj_alias,'ORDERS' as obj_name from dual union all
        select 'CUSTOMER'as obj_alias,'CUSTOMER' as obj_name from dual union all
        select 'CUST'as obj_alias,'CUSTOMER' as obj_name from dual union all
        select 'ACCOUNT'as obj_alias,'NOSTRO' as obj_name from dual union all
        select 'ACC'as obj_alias,'NOSTRO' as obj_name from dual union all
        select 'TRANSACTION'as obj_alias,'TRANSACTIONS' as obj_name from dual union all
        select 'PAYM'as obj_alias,'TRANSACTIONS' as obj_name from dual union all
        select 'T_TRANSACTIONS'as obj_alias,'TRANSACTIONS' as obj_name from dual union all
        select 'vw_SEC_COUPON'as obj_alias,'INSTRUMENTCASHFLOW' as obj_name from dual union all
        select 'vw_CONTRACT'as obj_alias,'CONTRACTS' as obj_name from dual union all
        select 'vw_USER'as obj_alias,'USERS' as obj_name from dual union all
        select '2E1FF0C3863FC2A5CC49E98AB0C8DD32'as obj_alias,'CONTROLROW' as obj_name from dual union all
        select 'LOANS'as obj_alias,'DP' as obj_name from dual union all
        select 'PAYMENTS'as obj_alias,'TRANSACTIONS' as obj_name from dual union all
        select 'vw_STATUS'as obj_alias,'STATUS' as obj_name from dual union all
        select 'vw_ACCBALANCE'as obj_alias,'ACCBALANCE' as obj_name from dual union all
        select 'vw_EVENT_OBJECTS' as obj_alias, 'EVENT_OBJECTS' as obj_name from dual
    )
        LOOP
            IF cur.obj_name = 'CONTROLROW' THEN
                UPDATE lic_bus_obj_alias
                SET
                    obj_alias = cur.obj_alias
                WHERE
                    obj_name = cur.obj_name;   
                CONTINUE;
            END IF;   
            SELECT
                COUNT(1)
            INTO vcnt
            FROM
                lic_bus_obj_alias
            WHERE
                obj_alias = cur.obj_alias;   
            IF vcnt > 0 THEN
                UPDATE lic_bus_obj_alias
                SET
                    obj_name = cur.obj_name
                WHERE
                    obj_alias = cur.obj_alias;   
            ELSE
                INSERT INTO lic_bus_obj_alias (
                    obj_alias,
                    obj_name
                ) VALUES (
                    cur.obj_alias,
                    cur.obj_name
                );   
            END IF;
        END LOOP;
    end;
    /
  3. Сохраните изменения выполнив команду COMMIT;
  4. Запустите адаптер и убедитесь, что ошибка устранена. 

Похожие страницы