Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Eksportowanie tabeli Oracle do arkusza programu Excel

W tym artykule wyjaśnię, w jaki sposób możemy dzielić i eksportować dane z tabeli bazy danych Oracle do wielu arkuszy roboczych pliku Excel za pomocą pakietu usług integracji SQL Server.

Często administratorzy baz danych prosili o generowanie raportów ad hoc z bazy danych. Ostatnio zostałem poproszony o wygenerowanie raportu z bazy danych. Chcą, abym dostarczył raport w wielu arkuszach kalkulacyjnych pliku Excel. Można to zrobić na różne sposoby, ale zapytanie wymagało dużych zasobów. Dlatego chcę wyodrębnić dane z bazy danych za jednym razem i zdecydowałem się na skorzystanie z pakietu usług integracyjnych SQL Server. Narzędzia danych SQL Server mają jeden komponent o nazwie Transformacja warunkowego podziału które można wykorzystać do wykonania zadania.

Korzystając z narzędzi danych SQL Server, możemy pobierać dane z różnych platform bazodanowych za pomocą połączenia ODBC. Większość platform bazodanowych udostępnia sterowniki łączności, których można użyć do skonfigurowania połączenia między aplikacją a bazą danych.

Co to jest warunkowa transformacja podziału

Transformacja podziału warunkowego może kierować wiersze danych do różnych danych wyjściowych w zależności od zawartości danych. Implementacja transformacji warunkowego podziału przypomina strukturę decyzyjną CASE w języku programowania. Ocenia wyrażenia i na podstawie wyników kieruje wiersz danych do określonego wyjścia. Ta transformacja zapewnia również domyślne wyjście, więc jeśli wiersz nie pasuje do żadnego wyrażenia, jest kierowany do domyślnego wyjścia. (Odniesienie do MSDN :https://docs.microsoft.com/en-us/sql/integration-services/data-flow/transformations/conditional-split-transformation?view=sql-server-2017).

Konfiguracja wersji demonstracyjnej

Zainstalowałem Oracle 11g express edition na moim komputerze. Utworzyłem tabelę o nazwie PRACOWNIKI w HR schemat XE bazy danych i dodał kilka fikcyjnych rekordów z AdventureWorks2014 baza danych.

Poniższy kod utworzy tabelę:

 CREATE TABLE „HR”. „EMPLOYEE_DATA” ( „BusinessEntityID” NUMBER(*,0), „Title” NVARCHAR2(8), „FirstName” NVARCHAR2(50), „MiddleName” NVARCHAR2(50), „LastName” 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), „Miasto” NVARCHAR2(30), „StateProvinceName” NVARCHAR2(50), „PostalCode” NVARCHAR2(15), „CountryRegionName” NVARCHAR2( 50) ) TWORZENIE SEGMENTU NATYCHMIASTOWE PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 BEZKOMPRESOWE PRZECHOWYWANIE REJESTRACJI (POCZĄTKOWE 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTICREASE 0 FREELISTS 1 FREELIST GROUP 1 BUFFER_POOL_CACHEFASH DOMYŚLNE_)"; 

Aby połączyć bazę danych Oracle za pomocą SSDT, musimy zainstalować oprogramowanie klienckie Oracle. Narzędzia danych SQL Server działają w trybie 32-bitowym, dlatego należy zainstalować 32-bitową wersję sterowników ODBC dla Oracle. Możesz pobrać klienta Oracle stąd.

Utworzyłem plik Excela o nazwie „HRData.xls ’, który ma dwa arkusze o nazwie Australia i Kanada . Dane zostaną podzielone na podstawie wartości CountryRegionName kolumna. Jeśli wartość kolumny CountryRegionName kolumna to Kanada następnie będzie przechowywany w Kanadzie arkusza roboczego i jeśli wartość kolumny CountryRegionName to Australia następnie będzie przechowywany w Australii arkusz roboczy.

Ponieważ wszyscy wiemy, jak utworzyć pakiet SSIS, wyjaśnię bezpośrednio, jak utworzyć zadanie przepływu danych.

Utwórz zadanie przepływu danych

W zadaniu Przepływ danych użyjemy następujących trzech komponentów:

  1. Źródło ADO.NET do wypełniania danych z bazy danych Oracle.
  2. Podział warunkowy, aby podzielić dane na wiele zestawów.
  3. Miejsce docelowe Excel z dwoma skoroszytami o nazwach „Australia” i „Kanada”.

Skonfiguruj źródło ADO.NET

Przeciągnij i upuść Źródło ADO.NET z Zestawu narzędzi SSIS do Przepływu danych okna i nazwij je Dane pracownika jak pokazano na poniższym obrazku:

Kliknij dwukrotnie Dane pracownika . Edytor źródeł ADO.NET otworzy się okno dialogowe. Tutaj nie stworzyliśmy jeszcze żadnego połączenia, stąd menedżer połączeń ADO.NET pole rozwijane jest puste. Stworzymy nowe połączenie. Aby to zrobić, kliknij Nowy w tym oknie dialogowym. Następnie pojawia się kolejne okno dialogowe, Skonfiguruj Menedżera połączeń, otworzy się, jak pokazano na poniższym obrazku:

W Konfiguruj Menedżera połączeń ADO.NET w oknie dialogowym kliknij Nowy . Inne okno dialogowe, Menedżer połączeń , otworzy się.

Domyślnie .Net Providers\SQLClient Data Provider zostanie wybrany w Dostawcy upuścić pudło. Ponieważ wypełniamy dane z bazy danych Oracle, wybierzemy Dostawcę danych OracleClient .

W Nazwie serwera wpisz nazwę lub adres IP serwera, na którym zainstalowano Oracle 11g. Nazwa użytkownika i hasło będą używane do połączenia z bazą danych Oracle. Zainstalowałem Oracle na mojej lokalnej maszynie wirtualnej, dlatego nazwa serwera to localhost . Zamierzam połączyć bazę danych za pomocą HR użytkownik, stąd nazwa użytkownika to HR . Podał odpowiednie hasło i kliknij OK . Zobacz następujący obraz:

Po zakończeniu konfiguracji kliknij Testuj połączenie aby zweryfikować połączenie z bazą danych i kliknij OK.

Skonfigurowaliśmy menedżera połączeń ADO.NET, dlatego domyślny menedżer połączeń zostanie wybrany automatycznie w Menedżerze połączeń ADO.NET rozwijanej listy. Zamierzamy pobrać dane z tabeli, dlatego wybierz Tabela lub Widok w menu rozwijanym trybu dostępu do danych. Utworzyłem już DATA PRACOWNIKÓW tabela w HR Schemat bazy danych Oracle, dlatego wybierz HR.EmployeesData w Nazwie tabeli lub widoku rozwijane pole, jak pokazano na poniższym obrazku:

Konfiguruj podział warunkowy

Teraz, aby wyeksportować dane w różnych arkuszach programu Excel na podstawie warunku, użyjemy transformacji podziału warunkowego. Przeciągnij warunkowy komponent podziału z SSIS przybornik do Przepływu danych okno, jak pokazano na obrazku poniżej.

Wspomniałem wcześniej, wyjście danych HR.EmployeeData tabela zostanie wyeksportowana w wielu arkuszach roboczych na podstawie warunku zdefiniowanego w Podziale warunkowym komponent.

Najpierw połączymy źródło ADO.Net z transformacją podziału warunkowego. Aby to zrobić, kliknij niebieską strzałkę na ścieżce przepływu danych u dołu Danych pracowników komponentu i przeciągnij go do warunkowej transformacji podziału, jak pokazano na poniższym obrazku.

Teraz skonfigurujemy warunkową transformację podziału. Jak wspomniałem wcześniej, dane z tabeli HR.EmployeesData podzielimy na podstawie wartości CountryRegionName i przechowuj je w różnych arkuszach roboczych.

Aby to zrobić, kliknij dwukrotnie Edytor przekształceń podziału warunkowego . Edytor przekształceń warunkowego podziału otworzy się okno dialogowe, jak pokazano na poniższym obrazku:

Jak widać na powyższym obrazku, edytor warunkowego podziału transformacji ma trzy sekcje, które określają sposób kierowania danych do kolejnych komponentów.

Sekcja A :w tej sekcji pod Kolumnami zostanie wyświetlona lista folderów kolumn wyjściowych, pochodząca z komponentu źródłowego ADO.Net, która może być użyta do zdefiniowania warunków podziału danych.

Sekcja B :W tej sekcji zostaną wymienione różne funkcje, których można użyć do konwersji danych wyjściowych w innym formacie i użyć do zdefiniowania warunków podziału danych.

Sekcja C :W tej sekcji możesz utworzyć warunek, który może podzielić dane wyjściowe źródła ADO.Net na wiele zestawów wyników.

Dodamy warunek w sekcji C. Więc najpierw rozwiń węzeł kolumny i przeciągnij CountryRegionName kolumnę (sekcja A) i upuść ją w siatce (sekcja C), jak pokazano na poniższym obrazku:

W tym przykładzie zdefiniujemy nasz warunek na podstawie CountryRegionName kolumna. Lista pracowników z „Kanady” będzie przechowywana w arkuszu programu Excel o nazwie Kanada a lista pracowników z Australii będzie przechowywana w Australii arkusz roboczy. Na podstawie warunku użyjemy równa się (==) operator. Równanie będzie wyglądało następująco:

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

Po zdefiniowaniu warunków kliknij OK aby zapisać i zamknąć okno dialogowe.

Konfigurowanie miejsca docelowego Excel

Teraz, gdy podzieliliśmy przepływ danych na wiele ścieżek, dodamy miejsce docelowe dla każdej ścieżki. Ponieważ zamierzamy eksportować dane tabeli w różnych arkuszach programu Excel, musimy utworzyć dwa miejsca docelowe programu Excel. Aby to zrobić, przeciągnij i upuść połączenie Excela z SSIS Toolbox, jak pokazano na poniższym obrazku:

Aby skonfigurować miejsce docelowe programu Excel, kliknij dwukrotnie miejsce docelowe programu Excel. Menedżer połączeń Excel otworzy się okno dialogowe. W tym oknie dialogowym kliknij Nowy jak pokazano na poniższym obrazku:

Kolejne okno dialogowe o nazwie Menedżer połączeń programu Excel będzie otwarte. W tym oknie dialogowym podamy ścieżkę, w której znajduje się plik Excel. Utworzyłem Dane pracownika plik na moim pulpicie. Przejdziemy przez system plików, wybierzemy plik i klikniemy OK jak pokazano na poniższym obrazku:

Teraz w trybie dostępu do danych z listy rozwijanej wybierz Tabela lub widok oraz w Nazwie arkusza Excela z listy rozwijanej wybierz Australia$, jak pokazano na poniższym obrazku:

Teraz skonfiguruję ścieżkę danych. Aby to zrobić, przeciągnij niebieską strzałkę ścieżki danych z transformacji warunkowego podziału do Pracownicy Australii składnik docelowy programu Excel. Po podłączeniu ścieżki danych do miejsca docelowego programu Excel pojawi się okno dialogowe, w którym można wybrać dane wyjściowe, które chcemy skierować do wybranego miejsca docelowego. Okno dialogowe będzie wyglądać następująco:

Okno dialogowe zawiera wszystkie dane wyjściowe na liście rozwijanej, która jest dostępna z warunkowego podziału transformacji. W takim przypadku lista rozwijana będzie zawierać dwie opcje.

  1. Australia
  2. Kanada
  3. Domyślne wyjście

Kliknij dwukrotnie składnik docelowy programu Excel, aby zmapować kolumny tabeli z kolumnami programu Excel. Aby to zrobić, kliknij dwukrotnie komponent docelowy programu Excel i w Edytorze miejsca docelowego programu Excel w oknie dialogowym wybierz Mapowanie opcja znajdująca się w lewym panelu okna dialogowego, jak pokazano na poniższym obrazku:

Na powyższym obrazku Kolumna wprowadzania to nazwa kolumny tabeli Oracle i Kolumna docelowa będzie nazwą kolumny arkusza Excel. W tej demonstracji nazwa kolumny tabeli i pliku Excel są takie same. Więc Edytor docelowy Excela automatycznie mapuje kolumny wejściowe i wyjściowe.

W ten sam sposób powtórzę proces konfiguracji przepływu danych dla Kanady ścieżka danych.

  1. Musimy wybrać Kanadę w Wybór wejścia i wyjścia okno dialogowe, jak pokazano na poniższym obrazku.
  2. W Edycji docelowej programu Excel r, wybierz Kanada$ w Nazwie arkusza Excela rozwijane pole, jak pokazano na obrazku poniżej.

Po zakończeniu wszystkich konfiguracji całe zadanie przepływu danych będzie wyglądało następująco:

Testowanie pakietu SSIS

Teraz uruchommy pakiet i zobaczmy, jak działa. Aby to zrobić, kliknij Rozpocznij na pasku menu. Jeśli pakiet zakończy się pomyślnie, powinien wyglądać następująco:

Jak pokazuje powyższy obrazek, pakiet wstawił 1 rekord w regionie Australii arkusz roboczy i 2 rekordy w regionie Kanady arkusz roboczy.

Podsumowanie

W tym artykule stworzyliśmy pakiet SSIS z pojedynczym przepływem danych. Do przepływu danych dodaliśmy transformację podziału warunkowego, aby podzielić dane na wiele ścieżek. Następnie skierowaliśmy każdą z tych ścieżek danych do różnych arkuszy programu Excel.

Referencje :

Eksportuj dane SQL do wielu skoroszytów pliku Excel.

Przydatne narzędzia:

Komponenty Devart SSIS Data Flow — umożliwiają integrację danych z bazy danych i danych w chmurze za pośrednictwem usług integracji serwera SQL.

Devart ODBC Drivers – zapewniają wysokowydajne i bogate w funkcje rozwiązania łączności dla aplikacji opartych na 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. Jak utworzyć obiekt oracle.sql.ARRAY?

  2. Funkcja uśpienia w ORACLE

  3. Połącz się w Oracle SQL

  4. Najlepsze praktyki:zadania konserwacji i ulepszania dla Oracle Cloud

  5. Dynamiczne próbkowanie zabija mnie w 12c