[ОТВЕТИТЬ]
Опции темы
17.12.2013 14:45  
PavelGS
Добрый день,
подскажите как правильно создать dblink, а после перегрузки данных его закрыть ?

Пробовал так:
Код:
procedure dbconnect (init integer) is
  test_count number;
  
  
    begin
      
     select count(1) into test_count from ALL_DB_LINKS where db_link = 'LAKMINS';
    
      IF test_count = 0 THEN
        EXECUTE IMMEDIATE q'[CREATE PUBLIC DATABASE LINK LAKMINS CONNECT TO userfor1c IDENTIFIED BY *** USING 'LAKMINS']';
        commit;
        ELSE
        EXECUTE IMMEDIATE q'[DROP PUBLIC database link LAKMINS]';
        EXECUTE IMMEDIATE q'[CREATE PUBLIC DATABASE LINK LAKMINS CONNECT TO userfor1c IDENTIFIED BY *** USING 'LAKMINS']';
        commit;        
      END IF;
          
    end;
    
    procedure dbdisconnect (init integer)is
    begin
        EXECUTE IMMEDIATE  q'[DROP PUBLIC database link LAKMINS]';
        commit;
    end;
    
  
  procedure CardsLoad (init integer) is
  
  begin
    dbconnect(1);
    EXECUTE IMMEDIATE q'[TRUNCATE TABLE SUPERMAG.SMCARD]';
    
    INSERT INTO SUPERMAG.SMCARD
    SELECT * 
    FROM SUPERMAG.SMCARD@LAKMINS;
    commit; 
    dbdisconnect(1);
  end;
 
17.12.2013 14:48  
OlegON
Никто не будет гадать, что у тебя не получается, разглядывая код. Проблема-то сама в чем?
 
17.12.2013 14:51  
PavelGS
DROP PUBLIC database link LAKMINS
Мое соединение срубается или если нет открытого при компиляции он инвалид :(
 
17.12.2013 15:05  
OlegON
Можно не пересказами в изложении Шуры Каретного, а просто цитировать ошибки? :( Не в autonomous transactions дело? И, кстати, зачем линк-то создавать/дропать все время? Кроме того, категорически отсоветую делать что-то удаленно кроме select * from table@link
 
17.12.2013 15:12  
PavelGS
У нас каждую ночь делается холодная копия бд, после чего линк остается но не работает.
Поэтому хотел его удалять по завершению операции.
 
17.12.2013 15:46  
OlegON
Проще не делать никому не нужную холодную копию или разобраться, что не работает.
Извини, на следующие сообщения "не работает" без цитат ошибок отвечать не буду.
 
17.12.2013 15:49  
PavelGS
ORA-02018: существует открытое соединение для канала связи БД с тем же именем
ORA-06512: на "SUPERMAG.SM2REP", line 25

Линия 25:
EXECUTE IMMEDIATE q'[DROP PUBLIC database link LAKMINS]';
 
18.12.2013 13:00  
OlegON
Так, а закрыть линк не пробовал?

Код:
ALTER SESSION CLOSE DATABASE LINK LAKMINS;
 
"Спасибо" OlegON от:
 
Опции темы



Часовой пояс GMT +3, время: 19:28.

Все в прочитанное - Календарь - RSS - - Карта - Вверх 👫 Яндекс.Метрика
Форум сделан на основе vBulletin®
Copyright ©2000 - 2016, Jelsoft Enterprises Ltd. Перевод: zCarot и OlegON
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.