2013-09-05 23 views
5

Chciałbym załadować dane równoległe z oracle do oracle, używając pakietów dblink i dbms_hs_parallel. W tym celu należy go mam plsql wymienione poniżej:dbms_hs_parallel kończy się niepowodzeniem z błędem

declare 
    lInserted number; 
begin 
    dbms_hs_parallel.LOAD_TABLE('SIEBEL.S_LOY_CARD','SIEBEL', 'BRED_SIEBEL_CARDS', true, 16, lInserted); 
    dbms_output.put_line(lInserted); 
end; 

obiekty Wszystko DB są ważne, ale pojawia się błąd

"ORA-00904: "DBMS_HS_PASSTHROUGH"."AGENT_CLASS_NAME": invalid identifier

ORA-06512: at "SYS.DBMS_HS_PARALLEL", line 1097

ORA-06512: at line 4".

jestem całkiem pewny, że nie podczas próby wstawienia. Ponieważ jeśli nie mam BRED_SIEBEL_CARDS w moim DB, pakiet tworzy go. Co oznacza, że ​​pakiet spełnia to, czego się oczekuje, ale niestety nie wstawia danych.

+0

Czym jest DBMS, z którego ładujesz dane? Czy to Netezza? Jednym z możliwych źródeł błędów jest niespójność w realizacji sterownika ODBC ... – ThinkJet

+0

, jak wspomniałem w pierwszym zdaniu, ładuję dane z jednego serwera Oracle do drugiego. Szybkość dblink nie wystarcza, ponieważ jest to pojedynczy wątek. –

+0

Ok. Niestety, przegapiłem tę frazę wprowadzającą. – ThinkJet

Odpowiedz

1

wierzę Oracle docs Database wyjaśnić, dlaczego masz swój błąd:

The remote database link name. The call can only be applied to a heterogeneous services database link.

Źródło: DBMS_HS_PARALLEL

Oracle DB - Oracle DB jest jednorodny połączenia, który nie korzysta z heterogenicznym Usługi agenta, ponieważ żaden nie jest wymagany.

Jeśli nie chcesz używać zwykłej instrukcji CTAS/INSERT/MERGE, spójrz na dbms_parallel_execute.

+0

Widzę twój punkt, ale dlaczego tworzy on tabelę dla danych? Morover próbowałem to sprawdzić nawet z MsSQL - to nie działa tak dobrze (z innego powodu, ale to nie ma znaczenia, więc moja opinia, że ​​pakiet w ogóle nie działa). –

+0

Użyłeś tej procedury w nieodpowiednim kontekście, więc jej zachowanie jest nieokreślone - zerwanie w przypadkowych miejscach. Oracle mogło użyć zwykłych SELECT na dblink, aby uzyskać dane słownika, rozpoznając w jednym miejscu, że czyta z innej bazy danych Oracle, a następnie nie udało się, gdy próbował jawnie użyć HS Agent do odczytu danych (ale to tylko moje przypuszczenie). – Crack

Powiązane problemy