Когато отправяте заявка към Oracle Database, можете да използвате SPOOL команда за експортиране на резултатите от вашата заявка в текстов файл, когато използвате SQLcl.
Пример
Ето пример, който експортира цяла таблица:
SPOOL '/Users/barney/data/regions.txt';
SELECT * FROM regions;
SPOOL off; Ето какво направи, ред по ред:
- Първият ред използва
SPOOLкоманда, за да посочите къде ще бъде записан изходният файл. Не забравяйте да промените/Users/barney/data/regions.txtдо местоположение във вашата система и подходящо име на файл. - На втория ред изпълних SQL заявката – резултатите, за които експортирам. В този случай експортирах целите
regionsмаса. - След това обърнах
SPOOLизключено.
Ето как изглежда полученият файл:
REGION_ID REGION_NAME
____________ _________________________
1 Europe
2 Americas
3 Asia
4 Middle East and Africa
4 rows selected.
В моя случай моят SQLFORMAT беше зададен на ansiconsole , и така изходът отразява това.
Можете да промените това във всеки подходящ формат.
Ето пример за експортиране на резултата във формат, който може да се използва като файл за импортиране с sql*loader:
SET SQLFORMAT loader
SPOOL '/Users/barney/data/regions_loader.txt';
SELECT * FROM regions;
SPOOL off;
SET SQLFORMAT ansiconsole Резултат:
1|"Europe"| 2|"Americas"| 3|"Asia"| 4|"Middle East and Africa"| 4 rows selected.
В този случай аз също нулирам SQLFORMAT обратно към ansiconsole веднъж SPOOL операцията беше завършена.
Премахване на обратна връзка
Можете да премахнете X rows selected с 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 Резултат:
REGION_ID REGION_NAME
____________ _________________________
1 Europe
2 Americas
3 Asia
4 Middle East and Africa
В този случай обърнах FEEDBACK отново след експортиране на файла.
Добавяне на резултатите
По подразбиране SPOOL използва REPLACE , който замества файла, ако вече съществува.
Въпреки това можем да използваме APPEND аргумент за добавяне на резултатите към файла.
Пример:
SET SQLFORMAT ansiconsole
SET FEEDBACK off
SPOOL '/Users/barney/data/regions_no_feedback.txt' APPEND;
SELECT * FROM regions;
SPOOL off;
SET FEEDBACK on Резултатен файл:
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
Този пример добави резултатите към файла, който беше създаден (и попълнен) в предишния пример. Това доведе до дублиране на резултата във файла.
Презаписване на съществуващия файл
Можем да използваме REPLACE за да презапишете съществуващия файл с резултатите от нова заявка:
SET SQLFORMAT ansiconsole
SET FEEDBACK off
SPOOL '/Users/barney/data/regions_no_feedback.txt' REPLACE;
SELECT * FROM regions;
SPOOL off;
SET FEEDBACK on Резултатен файл:
REGION_ID REGION_NAME
____________ _________________________
1 Europe
2 Americas
3 Asia
4 Middle East and Africa
Както бе споменато, REPLACE е настройката по подразбиране, така че бихме могли просто да пропуснем този аргумент напълно.