Saya ingin mengakses data dalam database Oracle 11g dari SQL-Server 2008
Saya mengatur server yang terhubung dan ketika saya mengeksekusi
select * from [Link_server_name]..Oracle_schema.Oracle_table
dan Oracle_table berisi kolom Number dan varchar2, semuanya berfungsi sebagai pengecualian.
Tetapi ketika Oracle_table berisi kolom CLOB, saya mendapatkan kesalahan berikut:
Der OLE DB-Anbieter 'MSDAORA' untuk Verbindungsserver 'L_V407SR8T' topi mati Meldung 'Kesalahan tidak ditentukan' zurückgeben.
Der OLE DB-Anbieter 'MSDAORA' für den Verbindungsserver 'L_V407SR8T' hat die Meldung 'Terjadi kesalahan Oracle, tetapi pesan kesalahan tidak dapat diambil dari Oracle.' zurückgeben.
Der OLE DB-Anbieter 'MSDAORA' für den Verbindungsserver 'L_V407SR8T' hat die Meldung 'Tipe data tidak didukung.' zurückgeben.
Msg 7306, Level 16, Negara 2, Baris 1
Die '"MCCAPP". "DOGGRUPPEN"' - Tabelle vom OLE DB-Anbieter 'MSDAORA' untuk Verbindungsserver 'L_V407SR8T' kann nicht geöffnet werden.
Menggunakan OPENQUERY
SELECT * FROM OPENQUERY([L_V407SR8T], 'Select CLOB_COLUMN from Oracle_table' )
saya mendapat
Der OLE DB-Anbieter 'MSDAORA' für den Verbindungsserver 'L_V407SR8T' hat die Meldung 'Terjadi kesalahan Oracle, tetapi pesan kesalahan tidak dapat diambil dari Oracle.' zurückgeben. Der OLE DB-Anbieter 'MSDAORA' für den Verbindungsserver 'L_V407SR8T' hat die Meldung 'Tipe data tidak didukung.' zurückgeben.
Maafkan pesan kesalahan Jerman.
Pertanyaan saya: Apakah ada cara untuk membaca kolom CLOB melalui Server yang ditautkan?
EDIT:
- SQL Server Impor dan Ekspor Wisaya tampaknya bergantung pada OLE DB juga dan mengisap tabel yang sama
- Saya bertanya pada diri sendiri, apakah masalahnya tergantung pada penggunaan set karakter, tapi saya tidak bisa mengubahnya
- Sebagai kerja praktis, saya menggunakan beberapa skrip PowerShell untuk mendapatkan data, tetapi
sumber
Jawaban:
Unduh dan instal klien basis data Oracle 11 pada mesin SQL Server 2008 Anda.
Menyiapkan server yang ditautkan menggunakan penyedia Oracle OLE DB (OraOLEDB.Oracle).
Pastikan "Izinkan Proses Dalam" diaktifkan di opsi Penyedia.
Klien Oracle 11 OLE DB mendukung CLOB.
sumber
Sebuah komentar untuk jawaban SO pertanyaan Bagaimana membaca kolom CLOB di Oracle menggunakan OleDb?
berisi tautan ke posting Dukungan Microsoft lama dengan pernyataan berikut
Akan menyenangkan untuk menemukan beberapa referensi terbaru.
Saya melakukan riset Google dan hanya menemukan solusi. Saya khawatir tipe datanya masih belum didukung.
Edit 02/05/2011
Saya benar-benar tidak mengerti mengapa Microsoft tidak dapat memperbaiki masalah ini. Skrip PowerShell berikut menggunakan OLE-DB untuk membaca tabel yang berisi kolom CLOB dari database Oracle dan memasukkan data ke dalam tabel serupa yang ada di Sql-Server menggunakan bulkCopy yang merupakan cara yang sangat efisien.
Sesuaikan string koneksi, kueri, dan nama tabel berikut untuk instalasi Anda:
Kode berikut menyalin tabel oracle ke dalam tabel sql-server
BTW: kode ini didasarkan pada proyek codeplex Kamus Data Murni Chad Millers
Saat ini menggunakan PowerShell adalah satu-satunya cara saya tahu untuk menyalin data dengan CLOB dari Oracle ke Sql-Server tidak menggunakan C # atau alat pihak ketiga.
Saya tidak berhasil menggunakan Wisaya Impor / Ekspor maupun server tertaut.
sumber
No new updates are planned for future releases of these components including their support against versions later than Oracle 8i.