以前听说oracle中可以使用utl_file读写文件,一直没机会接触到,再看了utl_file读文件的例子后,感觉和java中的读文件很像,一下是一个简单的使用utl_file读文件的例子,大神请绕过,因为例子真的很简单,我使用的oracle版本是10.2。

首先,普通用户要想使用utl_file,必须要有权限,首先使用dba登录,给用户授权,如下所示:

D:\oracle\app\oracle\product\10.2.0\server\BIN>sqlplus "connect as sysdba"SQL*Plus: Release 10.2.0.1.0 - Production on 星期日 1月 26 10:25:40 2014Copyright (c) 1982, 2005, Oracle.  All rights reserved.输入口令:连接到:
Oracle Database 10g Express Edition Release 10.2.0.1.0 - ProductionSQL> grant execute on utl_file to testuser;授权成功。

有了权限之后,要想读取文件,需新建一个目录directory,还得对该目录有读取权限:

新建目录命令如下:

SQL> create or replace directory ORADIR_MY_FILE as 'f:/saveFile/oracle/';目录已创建。

对用户授予该目录读写权限

SQL> grant write,read on directory ORADIR_MY_FILE to testuser;授权成功。

如果限制用户只有读权限可以把write去掉。

能授予权限就能撤销用户权限,撤销用户权限命令如下:

revoke write,read on directory ORADIR_MY_FILE from testuser;

查看系统所有目录命令如下:

select * from dba_directories;

如想删除目录,可以这样做:

SQL> drop directory ORADIR_MY_FILE;目录已删除。

目录新建完了,权限也有了,可以试下读取文件了:

---读文件测试
DECLAREf_file utl_file.file_type;c_line VARCHAR2(2048);
BEGIN--打开文件f_file := utl_file.fopen('ORADIR_MY_FILE','testsql.sql','R');IF utl_file.is_open(f_file) THENLOOPBEGINutl_file.get_line(f_file, c_line);EXCEPTIONWHEN no_data_found THENEXIT;END;dbms_output.put_line(c_line);END LOOP;END IF;IF utl_file.is_open(f_file) THENutl_file.fclose(f_file);END IF;
EXCEPTIONWHEN OTHERS THENIF utl_file.is_open(f_file) THENutl_file.fclose(f_file);END IF;dbms_output.put_line('异常:' || SQLERRM);
END;

utl_file.fopen('ORADIR_MY_FILE','testsql.sql','R');第一个参数是刚才新建的目录,第二个参数是文件名,可以使用全路径如:'f:/saveFile/oracle/testsql.sql';文件不一定是sql文件,什么java,txt,xml都可以,别试着打开doc之类的文件,这样你得到的将是乱码。

经我测试,文件名不能使用中文,还有'f:/saveFile/oracle/'和'f:/saveFile/oracle/test/'是不同的2个目录,对'f:/saveFile/oracle/'授权并不说明对'f:/saveFile/oracle/test/'目录也有权限,上面的结论是我测试的结果,如果有误,请指正,谢谢!

全文完。

利用pl/sql读文件(简单)相关推荐

  1. Spark sql 读文件的源码分析

    从spark jobs监控页面上经常看到这种job:     Listing leaf files and directories for 100 paths: 如图:     这其实是spark s ...

  2. 利用PL/SQL打印ASCII表?

    利用PL/SQL打印ASCII表? 系统环境: 1.操作系统:Windows 2000 2.数据库: Oracle 8i R2 (8.1.6) for NT 企业版 3.安装路径:C:\ORACLE ...

  3. PL/SQL编程的简单学习

    PL/SQL简单学习 1.PL/SQL块的组成部分: ① 声明部分:该部分包含了变量和常量的定义,以及变量和常量的初始值定义,这部分由关键字declare开始,如果PL/SQL块中不需要声明变量或常量 ...

  4. oracle 全局临时变量,如何解析Oracle PL / SQL中的简单XML片段并将其加载到全局临时表中?...

    Oracle的XML数据库实现有一些令人困惑的令人眼花缭乱的选项,并且在任何给定的场景中并不总是清楚(至少对我而言).在这种特殊情况下,你想要的是 XMLTable(),它将XQuery变成一组行. ...

  5. C/C++黑魔法-利用include宏读文件

    本文介绍使用include宏读取文件内容并打印出来. include宏 C/C++中包含头文件命令,用于将指定头文件嵌入源文件中; 这里使用的include宏时将string.txt文件内容嵌入str ...

  6. 利用PL/SQL查询:员工工资的等级

    1.代码如下(第一种方式:用if 语句): set serveroutput on; declare sal integer:=0; beginselect sal into sal from emp ...

  7. oracle导入del数据文件,pl/sql,Oracle数据库中,不小心delete数据并递交后如何恢复被删数据...

    用pl/sql developer导出表的数据时有三种方式:Oracle Export,Sql Insert,pl/sql developer 区别 导出数据到excel文件 excel数据导入到数据 ...

  8. oracle 12c sql图形化,Oracle 12c PL/SQL程序设计终极指南

    Oracle 12c PL/SQL程序设计终极指南 作者:孙风栋;王澜;郭晓惠 出版日期:2015年06月 文件大小:11.73M 支持设备: ¥60.00在线试读 适用客户端: 言商书局 iPad/ ...

  9. 基于PL/SQL的数据库备份方法

    PL/SQL Developer是Oracle数据库中用于导入或导出数据库的主要工具,本文主要介绍了利用PL/SQL Developer导入和导出数据库的过程,并对导入或导出时的一些注意事项进行了说明 ...

  10. Oracle学习笔记(最重要的是PL/SQL编程)

    一:Oracle认证,与其它数据库比较,安装 Oracle安装会自动的生成sys用户和system用户: (1) sys用户是超级用户,具有最高权限,具有sysdba角色,有create databa ...

最新文章

  1. 最新离婚大数据曝光:所有的分手,都是蓄谋已久
  2. 皮一皮:所以说不管做什么,上风口都是很重要的位置...
  3. Linux中vi的常用命令和快捷键使用
  4. 搜索推荐炼丹笔记:评论是怎么影响推荐的?
  5. ECCV 2018 | 腾讯AI Lab提出视频再定位任务,准确定位相关视频内容
  6. python插件使用教程_Python常用扩展插件使用教程解析
  7. 文献学习(part38)--Adaptive hash retrieval with kernel based similarity
  8. 开发vue用什么ide_VUE项目开发前期需要准备和配置些什么环境?
  9. FTP 编程 5 文件传输与目录切换
  10. 题目 2194: 蓝桥杯2018年第九届真题-递增三元组
  11. 纵向合并gridview单元格的两种方法
  12. outlook安装包下载
  13. latex tabular自动换行
  14. lisp弧度转度分秒_度分秒转弧度)
  15. 什么是HD , HDTV , BD(Blu-Ray) , HDDVD
  16. 顺序图-循环和分支-操作符的使用
  17. 【计网】(三)超网、路由、NAT协议
  18. 最快速的文件传输软件,解析镭速文件传输软件
  19. UML(系统分析与设计核心总结)+期末考试例题分析
  20. Linux修改主机名

热门文章

  1. HealthKit框架指南
  2. dts : rx8025t与lm75bd
  3. 详解:什么是VXLAN?
  4. 5款常用的数据可视化工具推荐!
  5. C语言实现快速排序算法
  6. 光伏发电matlab模块,光伏发电的matlab仿真.docx
  7. 光伏发电系统及其MPPT控制
  8. texlive 2022安装与使用
  9. java ssm Vue高校奖学金管理系统毕业设计项目介绍
  10. 风口来了?关于电子信息工程专业的有关介绍