0

0

PL/SQL--UTL_FILE包的使用介绍

php中文网

php中文网

发布时间:2016-06-07 17:34:04

|

1501人浏览过

|

来源于php中文网

原创

在PL/SQL中,UTL_FILE包提供了文本文件输入和输出互功能。也就是说我们可以通过该包实现从操作系统级别来实现文件读取输入或者是

在pl/sql中,utl_file包提供了文本文件输入和输出互功能。也就是说我们可以通过该包实现从操作系统级别来实现文件读取输入或者是写入到操作系统文件。通过该包也可以将其他系统的数据加载到数据库中。如加载web服务器日志,用户登录数据库日志乃至oracle日志文件等等。本文主要描述了utl_file的功能以及通过实例演示并理解这个包下相关过程函数的用法。

1、UTL_FILE介绍
  a、实现基于操作系统级别的读取与写入功能
  b、该方式为基于服务器端的文本文件访问模式,不支持二进制文件
  c、可以通过设置参数utl_file_dir来设置pl/sql访问操作系统文件的多个路径
  d、所有用户可以读写utl_file_dir参数设定的目录,因此应考虑安全问题
  e、也可以将参数utl_file_dir置空,而通过创建directory以及授予对directory权限来进行访问os文件(推荐方式)

2、UTL_FILE包中的过程和函数
a、UTL_FILE中定义的file_type为记录类型,如下所示其成员是私有的,不能够被直接引用或改变这个记录的组件。

  TYPE file_type IS RECORD (
      id          BINARY_INTEGER,
      datatype    BINARY_INTEGER,
      byte_mode  BOOLEAN);

b、UTL_FILE中相关过程函数的功能说明
  FCLOSE Procedure            Closes a file
  FCLOSE_ALL Procedure        Closes all open file handles
  FCOPY Procedure            Copies a contiguous portion of a file to a newly created file
  FFLUSH Procedure            Physically writes all pending output to a file
  FGETATTR Procedure          Reads and returns the attributes of a disk file
  FGETPOS Function            Returns the current relative offset position within a file, in bytes
  FOPEN Function              Opens a file for input or output
  FOPEN_NCHAR Function        Opens a file in Unicode for input or output
  FREMOVE Procedure          Deletes a disk file, assuming that you have sufficient privileges
  FRENAME Procedure          Renames an existing file to a new name, similar to the UNIX mv function
  FSEEK Procedure            Adjusts the file pointer forward or backward within the file by the number of bytes specified
  GET_LINE Procedure          Reads text from an open file
  GET_LINE_NCHAR Procedure    Reads text in Unicode from an open file
  GET_RAW Procedure          Reads a RAW string value from a file and adjusts the file pointer ahead by the number of bytes read
  IS_OPEN Function            Determines if a file handle refers to an open file
  NEW_LINE Procedure          Writes one or more operating system-specific line terminators to a file
  PUT Procedure              Writes a string to a file
  PUT_LINE Procedure          Writes a line to a file, and so appends an operating system-specific line terminator
  PUT_LINE_NCHAR Procedure    Writes a Unicode line to a file
  PUT_NCHAR Procedure        Writes a Unicode string to a file
  PUTF Procedure              A PUT procedure with formatting
  PUTF_NCHAR Procedure        A PUT_NCHAR procedure with formatting, and writes a Unicode string to a file, with formatting
  PUT_RAW Procedure          Accepts as input a RAW data value and writes the value to the output buffer

商易多用户商城
商易多用户商城

功能介绍:1. 商品出售包含拍卖模式,一口价模式。2. 全套系统采用淘宝网风格,成熟,简洁大方3. 每个商品支持多张图片上传,可自由设定,满足广大网民的迫切要求4. 商品信息支持 ubb,图文并茂5. 注册用户可参与竞拍,或者拍卖自己的商品6. 拥有会员注册,交易提醒,成交商品确认等邮件发送功能7. 拥有交易双方信用评价的功能,使得交易安全可*,可信度高8. 拥有安全稳定的用户虚拟币平台,可实现商

下载

3、演示ULT_FILE用法

a、使用UTL_FILE的主要步骤(使用directory方式)
  --先创建用于存放os文件的目录
  scott@USBO> ho mkdir -p /u03/database/usbo/db_utl_dir
 
  --在数据库层面添加directory
  scott@USBO> create directory db_utl_dir as '/u03/database/usbo/db_utl_dir';
 
  --权限授予
  scott@USBO> grant read,write on directory db_utl_dir to public;

b、从SQL查询写入到数据文件
  DECLARE
    vsfile  UTL_FILE.file_type;  --->定义用于接收文件句柄的类型
    v_cnt    PLS_INTEGER := 0;
  BEGIN
    vsfile :=                     
        UTL_FILE.fopen ('DB_UTL_DIR',  --->使用fopen打开文件,定义了文件路径,文件名,读写方式以及每一行字符的最大长度,,缺省为1024
                        'emp.txt',
                        'W',
                        200);
 
    FOR i IN (SELECT t.ename || ',' || t.job AS msg    --->使用了一个for循环来读取scott.emp表
                FROM scott.emp t WHERE t.sal>2000)
    LOOP
        UTL_FILE.put_line (vsfile, i.msg);              --->将for循环查询的内容使用put_line写入到文件
        v_cnt := v_cnt + 1;                            --->计数器,用于统计写入的记录数
    END LOOP;
 
    UTL_FILE.fflush (vsfile);
    UTL_FILE.fclose (vsfile);
    DBMS_OUTPUT.put_line (v_cnt || ' rows unloaded');
  END;
  /
 
  6 rows unloaded
 
  PL/SQL procedure successfully completed.

相关专题

更多
c++主流开发框架汇总
c++主流开发框架汇总

本专题整合了c++开发框架推荐,阅读专题下面的文章了解更多详细内容。

79

2026.01.09

c++框架学习教程汇总
c++框架学习教程汇总

本专题整合了c++框架学习教程汇总,阅读专题下面的文章了解更多详细内容。

46

2026.01.09

学python好用的网站推荐
学python好用的网站推荐

本专题整合了python学习教程汇总,阅读专题下面的文章了解更多详细内容。

121

2026.01.09

学python网站汇总
学python网站汇总

本专题整合了学python网站汇总,阅读专题下面的文章了解更多详细内容。

12

2026.01.09

python学习网站
python学习网站

本专题整合了python学习相关推荐汇总,阅读专题下面的文章了解更多详细内容。

15

2026.01.09

俄罗斯手机浏览器地址汇总
俄罗斯手机浏览器地址汇总

汇总俄罗斯Yandex手机浏览器官方网址入口,涵盖国际版与俄语版,适配移动端访问,一键直达搜索、地图、新闻等核心服务。

71

2026.01.09

漫蛙稳定版地址大全
漫蛙稳定版地址大全

漫蛙稳定版地址大全汇总最新可用入口,包含漫蛙manwa漫画防走失官网链接,确保用户随时畅读海量正版漫画资源,建议收藏备用,避免因域名变动无法访问。

370

2026.01.09

php学习网站大全
php学习网站大全

精选多个优质PHP入门学习网站,涵盖教程、实战与文档,适合零基础到进阶开发者,助你高效掌握PHP编程。

45

2026.01.09

php网站搭建教程大全
php网站搭建教程大全

本合集专为零基础用户打造,涵盖PHP网站搭建全流程,从环境配置到实战开发,免费、易懂、系统化,助你快速入门建站!

12

2026.01.09

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
SQL 教程
SQL 教程

共61课时 | 3.4万人学习

SQL优化与排查(MySQL版)
SQL优化与排查(MySQL版)

共26课时 | 2.3万人学习

MySQL索引优化解决方案
MySQL索引优化解决方案

共23课时 | 2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号