Oracle
 sql >> база данни >  >> RDS >> Oracle

Как да експортирате резултатите от заявката в .txt файл, когато използвате SQLcl (Oracle)

Когато отправяте заявка към 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 е настройката по подразбиране, така че бихме могли просто да пропуснем този аргумент напълно.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да инсталирате Oracle Linux Automation Manager (известен още като "Oracle Ansible Tower")

  2. Функция FLOOR() в Oracle

  3. Как да върнете списък с поддържани територии в Oracle

  4. Oracle:как да получите процент от общия брой чрез заявка?

  5. Основни технологични промени в E-Business Suite 12.2