2009-02-20 19 views

risposta

6
  • Oracle Heterogeneous Connectivity/Database Gateways in congiunzione con vista materializzata (s), PL/SQL, o Java
  • SSIS o DTS: entrambi possono essere programmati, ma richiedono più di accesso in sola lettura a SQL Server
  • Java (probabilmente all'interno di Oracle ma facoltativamente sul sistema operativo) che utilizza ODBC o SQLJ per accedere a SQL Server e, possibilmente, Oracle
  • SQL Server pianificato per l'esportazione in CSV, Oracle pianificato per l'importazione da CSV
  • Qualsiasi altro ETL strumenti (ad es. Informatica, Cognos)
  • Qualsiasi della miriade di lingue che possono accedere entrambi i database (ma richiederebbe il mantenimento di un terzo ambiente per eseguire l'applicazione all'interno)

Scheduling:

  • automatico/non reuqired con viste materializzate
  • Oracle DBMS_JOB/DBMS_SCHEDULER
  • OS-specifica (cron, Attività pianificate di Windows, etc)
  • Nel caso di esportazione SSIS, DTS o CSV, pianificata in SQL Server
2

È possibile avere un'interfaccia SQL Server con Oracle direttamente tramite SSIS (o DTS per 2k). Fornirà funzionalità ETL e può essere programmato su base regolare.

9

L'utilizzo di SQL Server Integration Services (SSIS) è la soluzione migliore. Se non hai familiarità con SSIS, il modo migliore per provare qualcosa è utilizzare l'Esportazione guidata di SQL Server e fargli creare un pacchetto SSIS per te. Ad esempio, se si accede a SQL Server Management Studio e si fa clic con il pulsante destro del mouse sul database, selezionare Attività-> Esporta dati. Da lì fai clic su Avanti fino a raggiungere il passaggio "Scegli una destinazione". Selezionare il "Provider Microsoft OLE DB per Oracle" e fare clic su Proprietà per definire la connessione al database. Quando si fa clic sulla procedura guidata, nella pagina Salva ed esegui, assicurarsi di selezionare la casella di controllo "Salva pacchetto SSIS", nella schermata successiva specificare dove salvare il pacchetto SSIS. Una volta terminata l'Esportazione guidata, i tuoi dati saranno stati esportati e avrai un pacchetto SSIS che puoi usare così com'è, oppure entrare e modificarlo per fare cose più specifiche. Una volta ottenuto il pacchetto SSIS, è possibile programmarlo creando un processo agente SQL Server.

1

Ho avuto successo creando un server collegato (da Enterprise Manager, credo) a Oracle sul lato SQL Server. Quindi potrei usare le normali procedure memorizzate su entrambi i lati per realizzare spostamenti e aggiornamenti dei dati più piccoli in entrambe le direzioni. Questo approccio può ignorare la necessità di provare a mettere insieme qualcosa fuori dai database.

Provare a utilizzare l'ultimo client Oracle possibile sul lato SQL Server. Ricordo alcuni difetti nel client 10.2.0.2 e il client 10.2.0.4 richiedeva la registrazione o il numero di acquisto Oracle "ufficiale" o qualcosa del genere.

Per spostamenti di dati di grandi dimensioni (o forse anche spostamenti/aggiornamenti che si desidera eseguire su base giornaliera o meno frequente), utilizzare sicuramente uno degli strumenti ETL. Avevamo Informatica per i nostri processi ETL, ma se SSIS può fare a pezzi ciò di cui hai bisogno, va bene anche questo.

+0

Intendi Enterprise Manager di SQL Server, non Oracle, giusto? – Alkini

+0

Sì, era sul lato SQL Server. Non ho le specifiche di fronte a me, ma ci è voluto un po 'su Google per capire il processo esatto. – Tom

2

Creare un collegamento al database da Oracle a Sql Server (connettività eterogenea). È possibile utilizzare questo link per recuperare i dati da Sql Server con una semplice istruzione select. Se vuoi programmare puoi usare una vista materializzata o dbms_scheduler.

Un'alternativa è quella di inserire i dati in un file csv, è possibile utilizzare una tabella esterna o sqlloader per caricare questi dati nel database Oracle.

+0

Grazie; Non avevo mai sentito il termine "Connettività eterogenea" prima. Sembra (almeno in 10g) che comprenda sia i gateway trasparenti che gli agenti di connettività generici (ODBC, OLE DB). – Alkini

+0

Mentre leggeva la guida amministrativa ufficiale e vedeva un'altra menzione dell'uso di viste materializzate, affondava nel modo in cui quella soluzione brillante (connettività eterogenea + viste materializzate) poteva essere. +1 – Alkini

1

Ecco quello che faccio: connettersi a SQL Server da parte di Oracle SQL Developer utilizzando questo link: https://kentgraziano.com/2013/01/14/tech-tip-connect-to-sql-server-using-oracle-sql-developer/

Dopo aver aggiunto SQL vaso, vedrete scheda SQL Server nella finestra di connessione:

enter image description here

Quindi connettersi all'istanza SQL.

Quindi aprire l'istanza SQL e scegliere il database o la tabella che si desidera copiare. Fare clic destro su qualsiasi database/tabella, quindi fare clic su "copia su Oracle" e scegliere l'utente [database] corretto in "Nome connessione destinazione" in cui si desidera copiare le tabelle.

È anche possibile modificare alcune proprietà lì. Fai clic su "OK" e il gioco è fatto.

Fatemi sapere in caso di problemi.

Problemi correlati