Oracle UTL_FILE使用笔记

  • Post author:
  • Post category:其他


出力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


UTL_FILE



版权声明:本文为kangcsdan原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。