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

cách xuất đầu ra ở định dạng CSV thông qua một thủ tục

Bạn có thể sử dụng Gói UTL_FILE để ghi vào tệp phẳng, tệp này sẽ được tạo trên Máy chủ DataBase.

Yêu cầu trước để sử dụng UTL_FILE:

một. Tạo một đối tượng thư mục trỏ đến một vị trí thực trên cơ sở dữ liệu. B. Đảm bảo rằng người dùng / lược đồ bạn đang sử dụng có quyền Đọc / Ghi vào vị trí này c. Đảm bảo rằng UTL_FILE được cài đặt trên cơ sở dữ liệu (chạy utl_file dưới dạng SYS) và cấp quyền thực thi trên UTL_FILE cho tài khoản bạn đang sử dụng.

Mã giả cho UTL_FILE:

DECLARE
  view_name VARCHAR2 (200);
  v_str     VARCHAR2 (1000);
  v_output  VARCHAR2 (4000);
  CURSOR tbl IS
    SELECT   view_name
    FROM     all_views
    WHERE    owner = Sys_context ('USERENV', 'CURRENT_SCHEMA')
    ORDER BY 1;

l_filehandle utl_file.file_type%TYPE; --Create a Variable with  Filetype record
BEGIN
  l_filehandle := utl_file.fopen(<directory_object>, <filename>, 'W'); --Call to open the file for Write Operation
  OPEN tbl;
  LOOP
    FETCH tbl
    INTO  view_name;

    EXIT
  WHEN tbl%NOTFOUND;
    v_str := 'Select '
    || view_name
    || ',  count (*) from '
    ||view_name;
    EXECUTE IMMEDIATE v_str INTO v_output;
    utl_file.Put_line(l_filehandle,v_output); --Actual Writing of line infile
  END LOOP;
  CLOSE tbl;
  utl_file.Fclose(l_filehandle);
END;

Hy vọng điều này sẽ giúp




  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 - chia hàng đơn thành nhiều hàng

  2. Không thể tìm nạp các bản ghi vào TO DATE Oracle

  3. C # Kết nối với định dạng DateTime của Oracle DB

  4. Khai báo nhiều giá trị trong các biến Oracle BIND

  5. Tạo thủ tục được lưu trữ với bảng từ một lược đồ khác ném PLS-00201