版本:17.3.1
我每天都要运行一些查询,我想在查询末尾添加一个代码,以便它以指定格式自动将表导出到计算机上的特定位置。可以说我的桌面为xlsx。
谢谢。
答案 0 :(得分:1)
1。创建目录以放置表中的数据:
CREATE OR REPLACE DIRECTORY EXPORT_DATA AS 'c:\temp'
2。创建过程:
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 ('EXPORT_DATA',
'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。运行过程:
BEGIN
export_to_csv;
END;