2012-06-08 19 views
6

Desidero scrivere un pacchetto SSIS per copiare i dati da Oracle a server MS Sql. e anche la condizione è, quali sono i dati che devono essere spostati da Oracle a SQL saranno noti selezionando una tabella in SQL. Fondamentalmente Table1.Column1 nel server SQL deve essere compilato da Oracle se il valore non è presente in quella tabella in SQL Server. abbiamo anche un valore di colonna comune in quella tabella per mappare il record con sql server e oracle. così per fare questo ho programmato di farlo nel pacchetto SSIS.Creazione di un pacchetto SSIS - Copia dei dati da Oracle a SQL Server

Qualcuno può spiegarmi in dettaglio come creare un pacchetto SSIS per lo scenario sopra indicato.

Grazie in anticipo per il vostro aiuto.

+0

Quale versione di ssis stai usando? – praveen

risposta

10

È necessario utilizzare Ricerca per unire la colonna comune (stesso tipo di dati) di SQL server e Oracle e recuperare i valori da Oracle che non ha un record corrispondente nel server SQL.

design Design

1.Utilizzando SSIS 2005

  1. trascinare una fonte OleDB e puntare al database Oracle e selezionare la tabella.
  2. Trascinare una ricerca e selezionare la connessione SQL Server e puntare alla relativa tabella.
  3. Nella scheda colonne unire la colonna comune e selezionare le colonne sul lato destro che è necessario recuperare. Lookup
  4. Fare clic sull'output Configure Error e selezionare la riga di reindirizzamento per la colonna di join. Lookup
  5. Trascinare un comando Oledb e collegarlo all'output di errore dalla ricerca. 6.Write una dichiarazione inserto in Command Oledb Oledb Oledb

2. Se si utilizza SSIS 2008 quindi non c'è bisogno di configurare l'uscita Errore in ricerca .solo trascinare la partita nessuna uscita dal Lookup a SQL Server destinazione.

+0

non hai bisogno di un OleDbcommnad, puoi usare un oledbdestination. Penso che sia più facile e più veloce – Diego

+0

Sì hai ragione. Che può essere fatto senza OledbCommand – praveen

+0

ciao Praveen, grazie molto fico ha funzionato come mi aspettavo e mi ha davvero aiutato. Un problema che devo affrontare è quando eseguo il mapping di una colonna da SQL Server e oracle in Cerca. una delle colonne ha un diverso tipo di dati quindi non è elencato una colonna chiamata 'ID' deve essere mappata ma abbiamo ID come int nel server SQL e la colonna di mappatura per 'ID' in Oracle è in varchar. quindi come posso mapparlo. –

3

Suggerisco l'implementazione this.

Ho usato la soluzione di praveen, ma a volte potrebbe non essere la migliore. Specialmente come il numero se i record sulla destinazione aumentano. Inoltre, non si occupa di "aggiornamenti"

+0

Ciao, Grazie per le vostre risposte. Voglio sapere se il seguito è possibile e se è così, ti preghiamo di spiegarlo in dettaglio. Grazie. In SQL abbiamo Table1 che ha molti dettagli di connessione al server Oracle. quello che dobbiamo fare è, abbiamo bisogno di copiare i dati da Oracle.Table5 a SQl.Table5. la condizione è in SQL.Table5 conosco il nome di fabbrica e utilizzando il nome di fabbrica posso ottenere i dettagli del server Oracle in SQL.Table1. quindi utilizzando questi dettagli ho bisogno di connettermi a Oracle e ottenere i dati corrispondenti e quindi aggiornare in Sql.Table5. Ciò è possibile nel pacchetto SSIS? –

+0

@Diego Sono passato al blog di Andy. Questa è la migliore implementazione del caricamento dei dati nel server SQL. La sua trasformazione Split aggiuntiva fa la differenza con la soluzione che ho pubblicato. Avrei potuto usare una tabella di staging per popolare i dati aggiornati usando la destinazione Oledb e poi nel flusso di controllo ha utilizzato un task sql execute per caricarlo nella tabella di destinazione. In questo modo posso ottenere prestazioni migliori evitando l'aggiornamento riga per riga (che viene fatto nel blog di Andy usando il comando Oledb) ed eseguire un'operazione batch utilizzando Execute Attività SQL – praveen

Problemi correlati