Podczas odpytywania bazy danych Oracle możesz użyć SPOOL
polecenie, aby wyeksportować wyniki zapytania do pliku tekstowego podczas korzystania z SQLcl.
Przykład
Oto przykład, który eksportuje całą tabelę:
SPOOL '/Users/barney/data/regions.txt';
SELECT * FROM regions;
SPOOL off;
Oto, co zrobił, linia po linii:
- Pierwszy wiersz używa
SPOOL
polecenie, aby określić, gdzie zostanie zapisany plik wyjściowy. Pamiętaj, aby zmienić/Users/barney/data/regions.txt
do lokalizacji w systemie i odpowiedniej nazwy pliku. - W drugim wierszu uruchomiłem zapytanie SQL – wyniki, dla których eksportuję. W tym przypadku wyeksportowałem całe
regions
stół. - Następnie zmieniłem
SPOOL
wyłączony.
Oto jak wygląda wynikowy plik:
REGION_ID REGION_NAME ____________ _________________________ 1 Europe 2 Americas 3 Asia 4 Middle East and Africa 4 rows selected.
W moim przypadku mój SQLFORMAT
został ustawiony na ansiconsole
, a więc dane wyjściowe to odzwierciedlają.
Możesz to zmienić na dowolny format, który Ci odpowiada.
Oto przykład eksportowania wyniku w formacie, który można wykorzystać jako plik importu za pomocą programu sql*loader:
SET SQLFORMAT loader
SPOOL '/Users/barney/data/regions_loader.txt';
SELECT * FROM regions;
SPOOL off;
SET SQLFORMAT ansiconsole
Wynik:
1|"Europe"| 2|"Americas"| 3|"Asia"| 4|"Middle East and Africa"| 4 rows selected.
W tym przypadku również zresetowałem SQLFORMAT
powrót do ansiconsole
raz SPOOL
operacja została zakończona.
Usuń opinię
Możesz usunąć X rows selected
z SET FEEDBACK off
:
SET SQLFORMAT ansiconsole
SET FEEDBACK off
SPOOL '/Users/barney/data/regions_no_feedback.txt';
SELECT * FROM regions;
SPOOL off;
SET FEEDBACK on
Wynik:
REGION_ID REGION_NAME ____________ _________________________ 1 Europe 2 Americas 3 Asia 4 Middle East and Africa
W tym przypadku włączyłem FEEDBACK
ponownie po wyeksportowaniu pliku.
Dołącz wyniki
Domyślnie SPOOL
używa REPLACE
, który zastępuje plik, jeśli już istnieje.
Możemy jednak użyć APPEND
argument, aby dołączyć wyniki do pliku.
Przykład:
SET SQLFORMAT ansiconsole
SET FEEDBACK off
SPOOL '/Users/barney/data/regions_no_feedback.txt' APPEND;
SELECT * FROM regions;
SPOOL off;
SET FEEDBACK on
Wynikowy plik:
REGION_ID REGION_NAME ____________ _________________________ 1 Europe 2 Americas 3 Asia 4 Middle East and Africa REGION_ID REGION_NAME ____________ _________________________ 1 Europe 2 Americas 3 Asia 4 Middle East and Africa
Ten przykład dołączył wyniki do pliku, który został utworzony (i wypełniony) w poprzednim przykładzie. Spowodowało to zduplikowanie wyniku w pliku.
Zastąp istniejący plik
Możemy użyć REPLACE
aby nadpisać istniejący plik wynikami nowego zapytania:
SET SQLFORMAT ansiconsole
SET FEEDBACK off
SPOOL '/Users/barney/data/regions_no_feedback.txt' REPLACE;
SELECT * FROM regions;
SPOOL off;
SET FEEDBACK on
Wynikowy plik:
REGION_ID REGION_NAME ____________ _________________________ 1 Europe 2 Americas 3 Asia 4 Middle East and Africa
Jak wspomniano, REPLACE
jest ustawieniem domyślnym, więc mogliśmy po prostu całkowicie pominąć ten argument.