2013-09-05 18 views
5

Vorrei caricare i dati paralleli da oracle a oracle utilizzando il pacchetto dblink e dbms_hs_parallel. Per farlo ho plsql elencati di seguito:dbms_hs_parallel ha esito negativo con errore

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; 

oggetti Tutti i DB sono validi, ma ho un errore

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

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

ORA-06512: at line 4".

Sono abbastanza sicuro che non riesce durante il tentativo di inserire. Perché se non ho BRED_SIEBEL_CARDS nel mio DB, il pacchetto lo crea. Il che significa che il pacchetto fa ciò che è previsto, ma purtroppo non inserisce i dati.

+0

Qual è il DBMS dal quale si stanno caricando i dati? È Netezza? Una delle possibili fonti di errore è l'incoerenza nella realizzazione del driver ODBC ... – ThinkJet

+0

come accennato nella prima frase, carico i dati da 1 server Oracle a un altro. la velocità del dblink non è sufficiente perché è single-thread. –

+0

Ok. Scusa, ho perso questa frase introduttiva. – ThinkJet

risposta

1

credo Oracle docs database spiegano il motivo per cui avete ottenuto il vostro errore:

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

Fonte: DBMS_HS_PARALLEL

Oracle DB - Oracle DB è un collegamento omogeneo, che non utilizza un agente di Heterogeneous Services, perché nessuno è richiesto.

Se non si desidera utilizzare una normale istruzione CTAS/INSERT/MERGE, esaminare dbms_parallel_execute.

+0

Vedo il tuo punto ma perché crea la tabella per i dati? Più volte ho provato a controllarlo anche con MsSQL - non funziona altrettanto bene (per una ragione defferente ma non importa quindi la mia opinione sul pacchetto non funziona affatto). –

+0

Hai usato questa procedura in un contesto improprio, quindi il suo comportamento è indefinito - si rompe in luoghi casuali. Oracle potrebbe aver usato SELECTs semplici su dblink per ottenere dati di dizionario, riconoscendo in un punto che legge da un altro database Oracle, e poi fallito quando ha provato ad usare esplicitamente HS Agent per leggere i dati (ma è solo una mia ipotesi). – Crack

Problemi correlati