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
SPOOLpolecenie, aby określić, gdzie zostanie zapisany plik wyjściowy. Pamiętaj, aby zmienić/Users/barney/data/regions.txtdo 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
regionsstół. - Następnie zmieniłem
SPOOLwyłą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.