Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Cách xuất kết quả truy vấn sang tệp .txt khi sử dụng SQLcl (Oracle)

Khi truy vấn Cơ sở dữ liệu Oracle, bạn có thể sử dụng SPOOL lệnh xuất kết quả truy vấn của bạn sang tệp văn bản khi sử dụng SQLcl.

Ví dụ

Dưới đây là một ví dụ xuất toàn bộ bảng:

SPOOL '/Users/barney/data/regions.txt';
SELECT * FROM regions;
SPOOL off;

Đây là những gì nó đã làm, từng dòng một:

  • Dòng đầu tiên sử dụng SPOOL lệnh để chỉ định nơi tệp đầu ra sẽ được ghi. Đảm bảo thay đổi /Users/barney/data/regions.txt đến một vị trí trên hệ thống của bạn và một tên tệp thích hợp.
  • Trên dòng thứ hai, tôi đã chạy truy vấn SQL - kết quả mà tôi đang xuất. Trong trường hợp này, tôi đã xuất toàn bộ regions bảng.
  • Tiếp theo, tôi đã chuyển SPOOL tắt.

Đây là tệp kết quả trông như thế nào:

   REGION_ID               REGION_NAME 
____________ _________________________ 
           1 Europe                    
           2 Americas                  
           3 Asia                      
           4 Middle East and Africa    

4 rows selected. 

Trong trường hợp của tôi, SQLFORMAT của tôi được đặt thành ansiconsole và do đó kết quả phản ánh điều đó.

Bạn có thể thay đổi điều này thành bất kỳ định dạng nào phù hợp.

Dưới đây là ví dụ về việc xuất kết quả ở định dạng có thể được sử dụng làm tệp nhập với trình tải sql *:

SET SQLFORMAT loader
SPOOL '/Users/barney/data/regions_loader.txt';
SELECT * FROM regions;
SPOOL off;
SET SQLFORMAT ansiconsole

Kết quả:

 1|"Europe"|
 2|"Americas"|
 3|"Asia"|
 4|"Middle East and Africa"|

4 rows selected. 

Trong trường hợp này, tôi cũng đặt lại SQLFORMAT quay lại ansiconsole một khi SPOOL hoạt động đã hoàn thành.

Xóa phản hồi

Bạn có thể xóa X rows selected khi tắt 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

Kết quả:

   REGION_ID               REGION_NAME 
____________ _________________________ 
           1 Europe                    
           2 Americas                  
           3 Asia                      
           4 Middle East and Africa    

Trong trường hợp này, tôi đã chuyển FEEDBACK quay lại sau khi xuất tệp.

Nối kết quả

Theo mặc định, SPOOL sử dụng REPLACE , sẽ thay thế tệp nếu nó đã tồn tại.

Tuy nhiên, chúng tôi có thể sử dụng APPEND đối số để nối kết quả vào tệp.

Ví dụ:

SET SQLFORMAT ansiconsole
SET FEEDBACK off
SPOOL '/Users/barney/data/regions_no_feedback.txt' APPEND;
SELECT * FROM regions;
SPOOL off;
SET FEEDBACK on

Tệp kết quả:

   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    

Ví dụ này đã nối kết quả vào tệp đã được tạo (và được điền) trong ví dụ trước. Điều này dẫn đến kết quả bị trùng lặp trong tệp.

Ghi đè tệp hiện có

Chúng ta có thể sử dụng REPLACE để ghi đè lên tệp hiện có bằng kết quả của một truy vấn mới:

SET SQLFORMAT ansiconsole
SET FEEDBACK off
SPOOL '/Users/barney/data/regions_no_feedback.txt' REPLACE;
SELECT * FROM regions;
SPOOL off;
SET FEEDBACK on

Tệp kết quả:

   REGION_ID               REGION_NAME 
____________ _________________________ 
           1 Europe                    
           2 Americas                  
           3 Asia                      
           4 Middle East and Africa    

Như đã đề cập, REPLACE là cài đặt mặc định, vì vậy chúng tôi có thể đơn giản bỏ qua hoàn toàn đối số này.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. verify_queryable_inventory được trả về ORA-20008:Đã hết thời gian chờ

  2. Ví dụ về Java trong Cơ sở dữ liệu Oracle

  3. Cách di chuyển tệp từ thư mục này sang thư mục khác bằng PL SQL

  4. Cách tính hệ số phân cụm chỉ số Oracle

  5. Những mạng lưới an toàn