2013年11月11日 星期一

oracle 讀取txt檔

Oracle的UTL_FILE用文件的I/O操作。
(1)Oracle10g之前的版本需要指定utl_file包可以操作的目。
         方法: 1、alter system set utl_file_dir='e:/utl' scope=spfile;

 2、在init.ora文件中,配置如下:UTL_FILE=E:/utl或者UTL_FILE_DIR=E:/utl;
 (2)Oracle10g之后的版本,


1.創建目錄:
2 CREATE [OR REPLACE] DIRECTORY directory AS 'pathname';
32.目錄創建以後,就可以把讀寫權限授予特定用戶,具體語法如下:
4 GRANT READ[,WRITE] ON DIRECTORY directory TO username; 

utl_file.fopen(
file_location IN VARCHAR2 --路径
file_name     IN VARCHAR2,   --文件名称
open_mode     IN VARCHAR2,   --打开模式 R  W  A 追加
max_linesize  IN BINARY_INTEGER DEFAULT NULL)
RETURN file_type;

DECLARE
  v_output  utl_file.file_type;
  v_contxt  VARCHAR2(250);
  v_pathna varchar2(10);
BEGIN
  v_pathna := 'utl_file_dir';
  v_output:= utl_file.fopen(v_pathna, 'test.txt', 'R');
  LOOP
    BEGIN
      utl_file.get_line(v_output, v_contxt);
      dbms_output.put_line(v_contxt);
    EXCEPTION
      WHEN OTHERS THEN
        EXIT;
    END;
  END LOOP;
  utl_file.fclose(v_output);
END ;

沒有留言:

張貼留言