2014-06-27 4 views
15

Sto provando a copiare una tabella da un database all'altro utilizzando lo sviluppatore sql di Oracle. Ho il nome utente, password e SID.copia da un database all'altro utilizzando lo sviluppatore sql di oracle - connessione fallita

copy from uname1/[email protected] to uname2/[email protected] insert table1 (*) using (select * from message_table); 

Comunque sto ottenendo l'errore connection failed.

I due database sono presenti in host host diversi (il nome host è diverso nelle proprietà di connessione).

Il tavolo ha 5 milioni di dischi ed è troppo ingombrante per l'esportazione/importazione

+0

Il dbLink è stato impostato? "Seleziona * dalla tabella @ SID2" produce risultati? – Hambone

+0

'descrizione connessione per database remoto non trovato' Questo è quello che sto ottenendo quando ho provato sid2 dal foglio di lavoro sid1 – user2133404

+0

Privilegi insufficienti per creare un collegamento al database – user2133404

risposta

28

Il comando copy è un comando SQL * Plus (non un comando SQL Developer). Se hai le impostazioni di voci tns per SID1 e SID2 (ad esempio prova un tnsping), dovresti essere in grado di eseguire il comando.

Un altro presupposto è che la tabella1 abbia le stesse colonne del message_table (e che le colonne abbiano solo i seguenti tipi di dati: CHAR, DATE, LONG, NUMBER o VARCHAR2). Inoltre, con un comando di inserimento, dovresti preoccuparti delle chiavi primarie (ad es. Che non stai inserendo record duplicati).

ho provato una variante del comando come segue in SQL * Plus (senza errori):

copy from scott/[email protected] to scott/[email protected] create new_emp using select * from emp; 

Dopo ho eseguito la dichiarazione di cui sopra, ho anche troncare la tabella new_emp ed eseguite il comando:

copy from scott/[email protected] to scott/[email protected] insert new_emp using select * from emp; 

Con SQL Developer, è possibile effettuare le seguenti operazioni per eseguire un approccio simile agli oggetti la copia:

  1. Sulla barra degli strumenti, selezionare Strumenti> Copia database.

  2. Identifica le connessioni di origine e destinazione con le opzioni di copia che desideri. enter image description here

  3. Per il tipo di oggetto, selezionare le tabelle. enter image description here

  4. Specificare la/e tabella/i specifica (ad esempio, tabella1). enter image description here

L'approccio comando di copia è vecchio e le sue caratteristiche non vengono aggiornati con il rilascio di nuovi tipi di dati. Ci sono un numero di approcci più attuali a questo tipo di pompa dati Oracle (anche per le tabelle).

+0

Grazie Patrick. Non riesco a trovare il tipo di oggetto nelle connessioni di origine e destinazione. Ho appena creato oggetti, troncare oggetto e rilasciare le opzioni dell'oggetto. – user2133404

+0

Penso di usare una versione precedente. Proverò questo e ti notifico – user2133404

+0

So che questa funzione è su SQL Developer 4. –