Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Mengekspor Tabel Oracle ke Lembar Kerja Excel

Dalam artikel ini, saya akan menjelaskan bagaimana kita dapat membagi dan mengekspor data tabel database Oracle ke dalam beberapa lembar kerja file Excel dengan bantuan paket layanan integrasi SQL Server.

Seringkali, DBA diminta untuk membuat laporan Ad-Hoc dari database. Baru-baru ini saya diminta untuk membuat laporan dari database. Mereka ingin saya memberikan laporan dalam beberapa lembar kerja dari file Excel. Ada beberapa cara berbeda untuk melakukannya tetapi kuerinya membutuhkan banyak sumber daya. Oleh karena itu saya ingin mengekstrak data dari database dengan satu eksekusi dan memutuskan untuk menggunakan paket layanan integrasi SQL Server. Alat data SQL Server memiliki satu komponen yang disebut Transformasi Split Bersyarat yang dapat digunakan untuk mencapai tugas.

Menggunakan alat data SQL Server, kita dapat mengambil data dari berbagai platform database dengan menggunakan koneksi ODBC. Sebagian besar platform database menyediakan driver konektivitasnya yang dapat digunakan untuk mengonfigurasi koneksi antara aplikasi dan database.

Apa yang dimaksud dengan Transformasi Split bersyarat

Transformasi Conditional Split dapat merutekan baris data ke output yang berbeda tergantung pada konten data. Implementasi transformasi Conditional Split seperti struktur keputusan CASE dalam bahasa pemrograman. Ini mengevaluasi ekspresi, dan berdasarkan hasil, mengarahkan baris data ke output yang ditentukan. Transformasi ini juga menyediakan output default, sehingga jika baris tidak cocok dengan ekspresi, itu diarahkan ke output default. (Referensi MSDN :https://docs.microsoft.com/en-us/sql/integration-services/data-flow/transformations/conditional-split-transformation?view=sql-server-2017) .

Penyiapan Demo

Saya telah menginstal Oracle 11g express edition di mesin saya. Saya telah membuat tabel bernama EMPLOYEESDATA di SDM skema XE database dan menambahkan beberapa catatan dummy dari AdventureWorks2014 basis data.

Kode di bawah ini akan membuat tabel:

 BUAT TABEL "HR"."EMPLOYEE_DATA" ( "ID Badan Usaha" NOMOR(*,0), "Judul" NVARCHAR2(8), "Nama Depan" NVARCHAR2(50), "Nama Tengah" NVARCHAR2(50), "Nama Belakang" NVARCHAR2(50), "Suffix" NVARCHAR2(10), "JobTitle" NVARCHAR2(50), "PhoneNumber" NVARCHAR2(25), "PhoneNumberType" NVARCHAR2(50), "EmailAddress" NVARCHAR2(50), "EmailPromotion" NUMBER( *,0), "AddressLine1" NVARCHAR2(60), "AddressLine2" NVARCHAR2(60), "City" NVARCHAR2(30), "StateProvinceName" NVARCHAR2(50), "PostalCode" NVARCHAR2(15), "CountryRegionName" NVARCHAR2( 50) ) PEMBUATAN SEGMEN SEGERA PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 PENYIMPANAN PENYIMPANAN LOG NOCOMPRESS(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTFA 1 FREELIST GROUPS_BUFFLE_CAULTER_DAFTAR MINEXTENS 2147483645)
 Untuk menghubungkan database Oracle menggunakan SSDT, kita perlu menginstal perangkat lunak klien Oracle. Alat data SQL Server berfungsi dalam mode 32bit sehingga driver ODBC versi 32bit untuk Oracle harus diinstal. Anda dapat mengunduh Oracle Client dari sini.

Saya telah membuat file Excel bernama ‘HRData.xls ' yang memiliki dua lembar kerja yang disebut Australia dan Kanada . Data akan dibagi berdasarkan nilai CountryRegionName kolom. Jika nilai kolom CountryRegionName kolomnya adalah Kanada kemudian akan disimpan di Kanada lembar kerja dan jika nilai kolom CountryRegionName adalah Australia kemudian akan disimpan di Australia lembar kerja.

Seperti yang sudah kita ketahui cara membuat paket SSIS, saya akan langsung menjelaskan cara membuat tugas aliran data.

Membuat Tugas Aliran Data

Dalam tugas Aliran data, kita akan menggunakan tiga komponen berikut:

  1. Sumber ADO.NET untuk mengisi data dari database Oracle.
  2. Pemisahan Bersyarat untuk membagi data menjadi beberapa set.
  3. Tujuan Excel dengan dua buku kerja yang disebut "Australia" dan "Kanada".

Konfigurasi Sumber ADO.NET

Seret dan lepas Sumber ADO.NET dari Kotak Alat SSIS ke Alur Data windows dan beri nama Data Karyawan seperti terlihat pada gambar berikut:

Klik dua kali Data Karyawan . Editor Sumber ADO.NET kotak dialog akan terbuka. Di sini, kami belum membuat koneksi apa pun, oleh karena itu manajer koneksi ADO.NET kotak drop-down kosong. Kami akan membuat koneksi baru. Untuk melakukannya, klik Baru dalam kotak dialog itu. Setelah ini, kotak dialog lain, Configure Connection Manager, akan terbuka seperti yang ditunjukkan pada gambar di bawah ini:

Di Konfigurasi Pengelola Koneksi ADO.NET kotak dialog, klik Baru . Kotak dialog lain, Pengelola Koneksi , akan terbuka.

Secara default, .Net Providers\SQLClient Data Provider akan dipilih di Penyedia kotak drop-down. Saat kami mengisi data dari database Oracle, kami akan memilih OracleClient Data Provider .

Di Nama Server kotak teks, masukkan nama atau Alamat IP server tempat Oracle 11g diinstal. User Name dan Password akan digunakan untuk menghubungkan database Oracle. Saya telah menginstal Oracle di VM lokal saya maka nama server akan menjadi localhost . Saya akan menghubungkan database menggunakan HR pengguna maka nama pengguna akan menjadi HR . Berikan sandi yang sesuai dan klik OK . Lihat gambar berikut:

Setelah konfigurasi selesai, klik Uji Koneksi untuk memverifikasi konektivitas dengan database dan klik OK.

Kami telah mengkonfigurasi manajer koneksi ADO.NET maka manajer koneksi default akan dipilih secara otomatis di Manajer Koneksi ADO.NET kotak daftar drop-down. Kami akan mengambil data dari tabel maka pilih Tabel atau Tampilan di kotak tarik-turun mode akses data. Saya telah membuat EMPLOYEESDATA tabel di SDM Skema database Oracle, maka pilih HR.EmployeesData di Nama tabel atau tampilan kotak drop-down seperti yang ditunjukkan pada gambar di bawah ini:

Konfigurasikan Pemisahan Bersyarat

Sekarang, untuk mengekspor data di lembar kerja Excel yang berbeda berdasarkan suatu kondisi, kita akan menggunakan transformasi split bersyarat. Seret komponen pemisahan bersyarat dari SSIS kotak alat ke Aliran Data jendela seperti yang ditunjukkan pada gambar di bawah ini.

Saya sebutkan sebelumnya, output dari data HR.EmployeeData tabel akan diekspor ke beberapa lembar kerja berdasarkan kondisi yang ditentukan dalam Pemisahan Bersyarat komponen.

Pertama, kita akan menghubungkan sumber ADO.Net ke transformasi split bersyarat. Untuk melakukannya, klik panah biru pada jalur aliran data di bagian bawah Data Karyawan komponen dan seret ke transformasi split bersyarat seperti yang ditunjukkan pada gambar di bawah ini.

Sekarang kita akan mengkonfigurasi transformasi split bersyarat. Seperti yang saya sebutkan sebelumnya, kita akan membagi data tabel HR.EmployeesData berdasarkan nilai CountryRegionName kolom dan simpan di lembar kerja yang berbeda.

Untuk melakukannya, klik dua kali Editor Transformasi Split Bersyarat . Editor Transformasi Split Bersyarat akan terbuka kotak dialog seperti pada gambar berikut:

Seperti yang Anda lihat pada gambar di atas, editor transformasi split bersyarat memiliki tiga bagian yang menentukan bagaimana data akan dirutekan ke komponen berikutnya.

Bagian A :Di bagian ini, di bawah Kolom daftar folder kolom output, yang berasal dari komponen sumber ADO.Net akan dicantumkan yang dapat digunakan untuk menentukan kondisi untuk membagi data.

Bagian B :Di bagian ini, berbagai fungsi akan dicantumkan yang dapat digunakan untuk mengonversi output dalam format yang berbeda dan digunakan untuk menentukan kondisi untuk membagi data.

Bagian C :Di bagian ini, Anda dapat membuat kondisi yang dapat membagi output dari sumber ADO.Net menjadi beberapa kumpulan hasil.

Kami akan menambahkan kondisi di Bagian-C. Jadi pertama-tama perluas simpul kolom dan seret CountryRegionName kolom (Bagian A) dan letakkan di kisi (Bagian C) seperti yang ditunjukkan pada gambar berikut:

Untuk contoh ini, kami akan mendefinisikan kondisi kami berdasarkan CountryRegionName kolom. Daftar karyawan dari “Kanada” akan disimpan di lembar kerja Excel bernama Kanada dan daftar karyawan dari Australia akan disimpan di Australia lembar kerja. Berdasarkan kondisi tersebut, kita akan menggunakan sama dengan (==) operator. Persamaannya akan menjadi sebagai berikut:

[CountryRegionName]=="Australia"[CountryRegionName]=="Kanada"

Setelah ketentuan ditentukan, klik OK untuk menyimpan dan menutup kotak dialog.

Mengonfigurasi Tujuan Excel

Sekarang kita telah membagi aliran data di beberapa jalur, kita akan menambahkan tujuan untuk setiap jalur. Karena kita akan mengekspor data tabel di lembar kerja Excel yang berbeda, jadi kita perlu membuat dua tujuan Excel. Untuk melakukannya, seret dan lepas koneksi Excel dari SSIS Toolbox, seperti terlihat pada gambar di bawah ini:

Untuk mengonfigurasi tujuan excel, klik dua kali Tujuan Excel. Manajer koneksi Excel kotak dialog akan terbuka. Di kotak dialog itu, klik Baru seperti terlihat pada gambar berikut:

Kotak dialog lain bernama Excel Connection Manager akan buka. Di kotak dialog ini, kami akan memberikan jalur tempat file Excel berada. Saya telah membuat Data Karyawan file di desktop saya. Kami akan melintasi sistem file dan memilih file dan klik OK seperti yang ditunjukkan pada gambar di bawah ini:

Sekarang, dalam Mode akses data kotak tarik-turun, pilih Tabel Atau Tampilan dan di Nama lembar Excel kotak tarik-turun, pilih Australia$, seperti terlihat pada gambar di bawah ini:

Sekarang saya akan mengkonfigurasi jalur data. Untuk melakukannya, seret panah jalur data biru dari transformasi pemisahan bersyarat ke Karyawan Australia komponen tujuan excel. Saat Anda menghubungkan jalur data ke tujuan Excel, kotak dialog akan muncul untuk memilih output yang ingin kita arahkan ke tujuan yang dipilih. Kotak dialog akan terlihat seperti berikut:

Kotak dialog mencakup semua output dalam daftar drop-down, yang tersedia dari transformasi split bersyarat. Dalam hal ini, daftar tarik-turun akan menyertakan dua opsi.

  1. Australia
  2. Kanada
  3. Keluaran Default

Klik dua kali komponen tujuan excel untuk memetakan kolom tabel dengan kolom Excel. Untuk melakukannya, klik dua kali komponen tujuan Excel dan di Editor Tujuan Excel kotak dialog, pilih Pemetaan pilihan yang terletak di panel kiri kotak dialog, seperti yang ditunjukkan pada gambar di bawah ini:

Pada gambar di atas, Kolom Masukan adalah nama kolom dari tabel Oracle dan Destination Column akan menjadi nama kolom lembar Excel. Dalam demo ini, nama kolom tabel dan file Excel adalah sama. Jadi Editor Tujuan Excel akan secara otomatis memetakan kolom input dan output.

Dengan cara yang sama, saya akan mengulangi proses konfigurasi aliran data untuk Kanada jalur data.

  1. Kita harus memilih Kanada di Pilihan Output Input kotak dialog, seperti yang ditunjukkan pada gambar di bawah ini.
  2. Di Edito Tujuan Excel r, pilih Kanada$ di Nama lembar Excel kotak drop-down seperti yang ditunjukkan pada gambar di bawah ini.

Setelah semua konfigurasi selesai, seluruh tugas aliran data akan terlihat seperti berikut:

Menguji Paket SSIS

Sekarang mari kita jalankan paketnya dan lihat cara kerjanya. Untuk melakukannya, klik tombol Mulai tombol pada bilah menu. Jika paket berhasil menyelesaikan eksekusi, akan terlihat seperti berikut:

Seperti yang ditunjukkan gambar di atas, paket memasukkan 1 record di Wilayah Australia lembar kerja dan 2 catatan di Wilayah Kanada lembar kerja.

Ringkasan

Dalam artikel ini, kami membuat paket SSIS dengan aliran data tunggal. Kami menambahkan transformasi Pemisahan Bersyarat ke aliran data untuk membagi data menjadi beberapa jalur. Kami kemudian mengarahkan setiap jalur data tersebut ke lembar kerja excel yang berbeda.

Referensi :

Ekspor Data SQL ke beberapa buku kerja dari file excel.

Alat yang berguna:

Devart SSIS Data Flow Components – memungkinkan Anda mengintegrasikan database dan data cloud melalui Layanan Integrasi SQL Server.

Devart ODBC Drivers – memberikan solusi konektivitas berkinerja tinggi dan kaya fitur untuk aplikasi berbasis ODBC.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. BDE vs ADO di Delphi

  2. Fungsi Numerik di Oracle (Daftar Lengkap)

  3. Bagaimana cara menghapus / menghapus sepenuhnya Oracle 11g (klien)?

  4. Bagaimana cara mendapatkan konten tekstual dari BLOB di Oracle SQL

  5. Bagaimana cara mendapatkan catatan secara acak dari database Oracle?