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

Cách xuất dữ liệu thành tệp CSV trong Oracle bằng quy trình PL SQL

Dưới đây là ví dụ từng bước được đưa ra để xuất dữ liệu thành tệp CSV trong Oracle bằng quy trình PL SQL. Trong ví dụ này, dữ liệu đang được xuất từ ​​một số trường của Bảng trống của lược đồ Scott sang tệp CSV bằng gói UTL_FILE Oracle. Làm theo các bước dưới đây để xuất dữ liệu từ bảng Cơ sở dữ liệu Oracle sang tệp CSV.

1. Tạo một Đối tượng Thư mục trong đó bạn sẽ ghi tệp CSV.

- đối với hệ thống windows tạo như sau, thay đổi thư mục được đánh dấu bằng thư mục của bạn
CREATE OR REPLACE DIRECTORY CSVDIR AS 'd:\temp'
/
- đối với hệ thống Unix / Linux, hãy tạo như sau
CREATE OR REPLACE DIRECTORY CSVDIR AS '/temp/'
/
Lưu ý:Thay đổi vị trí thư mục thành vị trí thư mục của bạn, ví dụ:c:\ abc hoặc / abc /.

2. Tạo Thủ tục cơ sở dữ liệu trong lược đồ Scott hoặc nếu bạn đang tạo trong một lược đồ khác thì hãy đảm bảo rằng bạn có bảng Emp trong lược đồ đó, nếu không, bạn cần thay đổi Con trỏ và tham chiếu trường cho bất kỳ bảng nào khác.

CREATE OR REPLACE PROCEDURE export_to_csv
IS
   v_file     UTL_FILE.file_type;
   v_string   VARCHAR2 (4000);

   CURSOR c_emp
   IS
      SELECT empno,
             ename,
             deptno,
             sal,
             comm
        FROM emp;
BEGIN
   v_file :=
      UTL_FILE.fopen ('CSVDIR',
                      'empdata.csv',
                      'w',
                      1000);

   -- if you do not want heading then remove below two lines
   v_string := 'Emp Code, Emp Name, Dept, Salary, Commission';
   UTL_FILE.put_line (v_file, v_string);

   FOR cur IN c_emp
   LOOP
      v_string :=
            cur.empno
         || ','
         || cur.ename
         || ','
         || cur.deptno
         || ','
         || cur.sal
         || ','
         || cur.comm;

      UTL_FILE.put_line (v_file, v_string);

   END LOOP;
   UTL_FILE.fclose (v_file);

EXCEPTION
   WHEN OTHERS
   THEN
      IF UTL_FILE.is_open (v_file)
      THEN
         UTL_FILE.fclose (v_file);
      END IF;
END;

3. Bây giờ hãy chạy quy trình như sau:

BEGIN
   export_to_csv;
END;
Bây giờ bạn có thể kiểm tra thư mục của mình mà bạn đã chỉ định trong lệnh Tạo Thư mục rằng tệp empdata.csv phải tồn tại với dữ liệu bảng. Tôi đã tạo một tiện ích tạo quy trình trực tuyến, hãy thử nó:
  • Tạo thủ tục PL / SQL trực tuyến để xuất dữ liệu từ bảng
  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:Nhập tệp CSV

  2. Làm cách nào để gỡ cài đặt / gỡ bỏ hoàn toàn Oracle 11g (máy khách)?

  3. Sự khác biệt giữa varchar và varchar2 trong Oracle là gì?

  4. PRVG-2027 Chủ sở hữu tệp không nhất quán giữa các nút

  5. Oracle SQL để thay đổi kiểu cột từ số thành varchar2 trong khi nó chứa dữ liệu