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

Jak pisać do pliku CSV za pomocą Oracle SQL*Plus

[SQLPlus](https://docs.oracle.com/cd/B19306_01/server.102/b14357/qstart.htm) to interaktywne narzędzie, które jest instalowane z każdą nowoczesną instalacją Oracle. SQL Plus pozwala wyjść poza standardowe zapytania do bazy danych za pomocą partii, skryptów i obliczeń wykraczających poza normalny zakres Oracle.

Jest nawet możliwe, jak omówimy poniżej – generowanie plików tekstowych, takich jak .csv , używając danych wyjściowych konkretnego zapytania do bazy danych.

Uruchamianie SQL*Plus

W zależności od instalacji Oracle, możesz mieć dostęp do jednej z wielu różnych wersji lub „trybów” uruchamiania aplikacji SQL*Plus.

Wiersz poleceń SQL*Plus

Jeśli chcesz użyć SQL*Plus Command-line , po prostu wydasz sqlplus polecenie z twojej powłoki:

$ sqlplus

Spowoduje to próbę połączenia z domyślnym bazy danych i zostaniesz poproszony o podanie swoich danych uwierzytelniających w celu uwierzytelnienia.

W przypadku, gdy musisz połączyć się z inną database lub użyj innego user (schema ), spróbuj wykonać następujące czynności, w razie potrzeby zastępując własne wartości:

$ sqlplus schema@//machine.domain:port/database

iSQL*Plus

Jeśli masz do niego dostęp, możesz użyć iSQL*Plus , która jest przeglądarkową wersją narzędzia wiersza poleceń SQL*Plus.

W tym celu wystarczy odwiedzić iSQL*Plus URL dla Twojej bazy danych i instalacji. Dokładny adres URL będzie się różnić, ale zazwyczaj ma następujący format:http://machine_name.domain:port/isqlplus

SQL*Plus dla Windows

Jeśli używasz systemu Windows, dostępna jest również wersja SQL*Plus z graficznym interfejsem użytkownika dla systemu Windows, którą zazwyczaj można uruchomić z menu Start:Start > Programs > Oracle > Application Development > SQL Plus .

Wyprowadzanie zapytania do pliku

Teraz, gdy masz połączenie z SQL*Plus, możemy rozpocząć tworzenie naszego pliku.

Modyfikuj konfigurację SQL*Plus

Pierwszym krokiem jest skonfigurowanie niektórych ustawień systemu SQL*PLus za pomocą SET oświadczenie.

W tym przykładzie będziemy ręcznie zmieniać te ustawienia jeden raz przed naszym zapytaniem i wygenerowaniem pliku, ale w razie potrzeby możesz zmienić wartości domyślne różnych ustawień w swoim User Profile , znajdujący się w login.sql plik.

set colsep ,
set headsep off
set pagesize 0
set trimspool on

Kilka pierwszych ustawień, których zwykle nie chcesz zmieniać, ale pokrótce wyjaśnimy, co każde z nich osiąga.

  • colsep to znak separatora używany do dzielenia kolumn. Dla pliku .csv plik, to jest prosty przecinek.
  • headsep to znak separatora dla wiersza nagłówka (jeśli go potrzebujesz). W tym przykładzie nie wyprowadzamy wiersza nagłówka, więc zostawiamy off .
  • pagesize to liczba wierszy „na stronę”. Jest to nieco archaiczne ustawienie przeznaczone do drukowania bez zbyt wielu wierszy na stronie. Z wartością 0 , nie używamy stron, ponieważ wysyłamy do pliku. Jeśli zdecydujesz się pokazać header wiersz, ustaw pagesize do bardzo dużej liczby (większej niż oczekiwana liczba rekordów wyników w zapytaniu), więc wiersz nagłówka będzie wyświetlany tylko raz, a nie raz „na stronę”.
  • trimspool ustaw na on po prostu usuwa końcowe białe znaki.

Teraz ostatnie dwa ustawienia będą musiały zostać zmienione w zależności od zapytania.

set linesize #
set numwidth #
  • Dla linesize , # wartość powinna być całkowitą liczbą kolumn wyjściowych w wynikowym zapytaniu.
  • numwidth to szerokość kolumny (liczba spacji znaków) używana podczas wyprowadzania wartości liczbowych.

Polecenie SPOOL

Uwaga:SPOOL polecenie jest niedostępne w przeglądarkowej wersji SQL*Plus, iSQL*Plus . Aby generować pliki podczas korzystania z iSQL*Plus, zmień niezbędne ustawienia preferencji, aby wyprowadzać bezpośrednio do pliku.

Gdy już zadbaliśmy o nasze ustawienia, musimy teraz powiedzieć SQL*Plus, aby wyprowadził plik. Osiąga się to za pomocą SPOOL oświadczenie.

Podczas gdy SPOOL jest aktywny , SQL*PLus zapisze dane wyjściowe dowolnego zapytania do określonego pliku.

Dlatego następnym poleceniem do wprowadzenia jest spool :

spool file_path

Lekko przeskakuję do przodu, po Twoje zapytanie zostało wstawione, musisz także zatrzymać spool więc wyjście pliku jest zamykane za pomocą spool off polecenie:

spool off

Wstaw zapytanie

Ostatni krok po zmodyfikowaniu ustawień i spool działa jest wstawienie zapytania. W naszym prostym przykładzie wyprowadzamy wszystkie książki z naszych books tabela.

SELECT
  title,
  primary_author
FROM
  books;

Nie zapomnij o średniku, aby zamknąć instrukcję zapytania, a następnie wprowadź wspomniany spool off polecenie.

To wszystko, wygenerowałeś nowy plik tekstowy z wynikami zapytania za pomocą SQL*Plus.

Wskazówka:korzystanie z pliku skryptu

Zamiast ręcznie wprowadzać każdą linię, sugeruje się wprowadzenie wszystkich ustawień do nowego pliku skryptu, który można wykonać w SQL*Plus jednym poleceniem.

Utwórz nowy plik skryptu za pomocą EDIT oświadczenie:

EDIT file_name

Teraz wklej całą listę poleceń skryptu do nowego pliku i zapisz. Pełną zawartość naszego przykładowego skryptu można znaleźć poniżej.

set colsep ,
set headsep off
set pagesize 0
set trimspool on
set linesize 2
set numwidth 5

spool books.csv

SELECT
  title,
  primary_author
FROM
  books;

spool off

Aby wykonać skrypt, po prostu użyj @ symbol, po którym następuje nazwa pliku:

@file_name

Twój skrypt powinien zostać wykonany, a plik .csv plik utworzony zgodnie z oczekiwaniami.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Błąd podczas używania pliku oracle.dataaccess.dll

  2. Pobierz VIEW ddl za pomocą zapytania

  3. ORA-12704:niezgodność zestawu znaków

  4. usuwanie milisekund z pola Oracle tmstmp

  5. Biała księga statystyczna CBO