2013-09-05 28 views
5

Ich möchte parallele Daten von Oracle zu Oracle mit dblink und dbms_hs_parallel-Paket laden. Um es zu tun habe ich plsql unten aufgeführt:dbms_hs_parallel schlägt mit Fehler fehl

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; 

All DB-Objekte sind gültig, aber ich erhalte eine Fehlermeldung

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

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

ORA-06512: at line 4".

Ich bin mir ziemlich sicher, dass es bei dem Versuch fehlschlägt einzufügen. Weil, wenn ich keine BRED_SIEBEL_CARDS in meiner Datenbank habe, erstellt das Paket es. Was bedeutet, dass das Paket das tut, was erwartet wird, aber leider keine Daten einfügt.

+0

Aus welchem ​​DBMS laden Sie Daten? Ist es Netezza? Eine der möglichen Fehlerquellen ist die Inkonsistenz bei der ODBC-Treiberrealisierung ... – ThinkJet

+0

Wie ich im ersten Satz erwähnte, lade ich Daten von einem Oracle-Server auf einen anderen. Die Geschwindigkeit von dblink ist nicht ausreichend, da es sich um einen einzelnen Thread handelt. –

+0

Ok. Entschuldigung, ich habe diesen Einleitungssatz verpasst. – ThinkJet

Antwort

1

Ich glaube, Oracle Database docs erklären, warum Sie Ihre Fehlermeldung anzeigt:

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

Quelle: DBMS_HS_PARALLEL

Oracle DB - Oracle DB eine homogene Verbindung ist, die nicht eine heterogene Dienstleistungsstelle nicht verwendet, weil keine ist erforderlich.

Wenn Sie keine reguläre CTAS/INSERT/MERGE-Anweisung verwenden möchten, schauen Sie in dbms_parallel_execute.

+0

Ich sehe Ihren Standpunkt, aber warum erstellt er die Tabelle für Daten? Mehr habe ich versucht, es sogar mit MsSQL zu überprüfen - es funktioniert nicht so gut (aus unterschiedlichen Gründen, aber es spielt keine Rolle, meine Meinung das Paket funktioniert überhaupt nicht). –

+0

Sie haben dieses Verfahren in einem falschen Kontext verwendet, sodass das Verhalten nicht definiert ist und an zufälligen Stellen unterbrochen wird. Oracle hat möglicherweise einfache SELECTs über dblink verwendet, um Wörterbuchdaten zu erhalten, die an einer Stelle erkannt haben, dass es aus einer anderen Oracle-Datenbank liest, und dann fehlgeschlagen ist, als es versuchte, den HS-Agenten explizit zum Lesen von Daten zu verwenden (aber das ist nur meine Vermutung). – Crack

Verwandte Themen