出力CSV文件(文件生成在服务器不是本地)
首先在数据库里创建文件目录cmd和工具里都可以
查询当前所有的目录
select * from dba_directories;(Oracle11g以上)
创建专用目录
create or replace directory TEMPCSVDIR as ‘D:\TEMPCSVDIR\CSV’;
TEMPCSVDIR随便定义注意不要和Oracle的目录重名
如果想删除目录使用下面的语句
drop directory TEMPCSVDIR;
出力目录创建好以后
LV_CSVPATH := ‘TEMPCSVDIR’;–注意这里不要写绝对路径例如C:\TEMP\CSV
LV_CSVFILE UTL_FILE.FILE_TYPE; –定义CSV文件变量
LV_CSVFILE = UTL_FILE.FOPEN(LV_CSVPATH, CONVERT(LV_FILENAME, ‘JA16SJISTILDE’), ‘w’);
LV_FILENAME CSV文件名随便定义
JA16SJISTILDE 文件字符集(这里是日文字符集),也可使用AL32UTF8,注意字符集设置不对会出现乱码
UTL_FILE.PUT_LINE( LV_CSVFILE,’1,’ || ‘2,’ || ‘3’ );
写入文件时转换整行字符集
UTL_FILE.PUT_LINE( LV_CSVFILE,CONVERT( ‘1,’ || ‘2,’ || ‘3’,’AL32UTF8′));
注意UTL_FILE.PUT_LINE( LV_CSVFILE,parameter IN varchar2);只能写入varchar2、varchar的类型,如果是NVARCAHR2的类型写入汉子后会出现乱码
使用Translate(‘CSV出力’, USING CHAR_CS)或者TO_CHAR(‘CSV出力’)
最后关闭
UTL_FILE.FCLOSE(LV_CSVFILE);
Oracle 官方API