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