Rute khas yang diambil pelanggan kami saat mengintegrasikan data Oracle® dan SQL Server mereka adalah dengan menggunakan Oracle® Heterogeneous Services dengan driver SQL Server ODBC kami. Pendekatan ini dijelaskan dalam tutorial DG4ODBC kami.
Metode alternatif adalah dengan menggunakan bcp alat yang disertakan dalam distribusi driver SQL Server ODBC bersama dengan Oracle® SQL*Loader . Anda dapat menggunakan pipa bernama sebagai saluran data antara bcp dan SQL*Loader yaitu Anda tidak perlu menggunakan bcp untuk menulis data SQL Server ke file fisik dan kemudian menggunakan file ini sebagai sumber data untuk SQL*Loader (walaupun bisa jika Anda mau).
- Buat beberapa contoh data di SQL Server:
$ cd /usr/local/easysoft/unixodbc/bin $ ./isql.sh -v SQLSERVER_SAMPLE +---------------------------------------+ | Connected! | | | | sql-statement | | help [tablename] | | quit | | | +---------------------------------------+ SQL> create table bcptest (c1 int, c2 varchar(20)) SQLRowCount returns -1 SQL> insert into bcptest values (1, 'Hello'),(2,'World') SQLRowCount returns 2 SQL> select * from bcptest +------------+---------------------+ | c1 | c2 | +------------+---------------------+ | 1 | Hello | | 2 | World | +------------+---------------------+ SQLRowCount returns -1 2 rows fetched SQL>
- Buat tabel di Oracle® untuk menampung data SQL Server:
SQL> create table bcptest (c1 int, c2 varchar(20))
- Buat pipa bernama:
$ mknod /tmp/bcp-pipe p
- Membuat dan mengisi
SQL*Loaderfile kontrol:$ cat /tmp/bcp.ctl load data append into table bcptest fields terminated by "\t" ( c1, c2 )
- Jalankan
SQL*Loaderdi latar belakang, di mana ia akan tetap menunggu data tiba:$ cd /u01/app/oracle/product/11.2.0/xe/bin $ ./sqlldr myuser/password data=/tmp/bcp-pipe control=/tmp/bcp.ctl &
- Gunakan
bcpuntuk menulis ke pipa:$ cd /usr/local/easysoft/sqlserver/bcp/ $ ./bcp test.dbo.bcptest out /tmp/bcp-pipe -c -S myserver:1433 -U sa -P password
SQL*Loader proses membaca data dari pipa, memasukkan catatan ke dalam Oracle® dan mengakhiri:
$ SQL*Loader: Release 11.2.0.2.0 - Production on Fri Nov 4 07:18:53 2016 Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved. -bash-4.1$ Commit point reached - logical record count 2 [1]+ Done ./sqlldr myuser/mypassword data=/tmp/bcp-pipe control=/tmp/bcp.ctl &
Catatan sekarang ada di Oracle®, seperti yang ditunjukkan oleh kueri berikut di SQL*Plus :
$ ./sqlplus
SQL> select * from bcptest;
C1 C2
---------- --------------------
1 Hello
2 World