`
53873039oycg
  • 浏览: 841445 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

利用pl/sql读文件(简单)

阅读更多

     以前听说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 2014

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

输入口令:

连接到:
Oracle Database 10g Express Edition Release 10.2.0.1.0 - Production

SQL> 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;

目录已删除。

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

   

---读文件测试
DECLARE
  f_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) THEN
    LOOP
      BEGIN
        utl_file.get_line(f_file, c_line);
      EXCEPTION
        WHEN no_data_found THEN
          EXIT;
      END;
      dbms_output.put_line(c_line);
    END LOOP;
  END IF;
  IF utl_file.is_open(f_file) THEN
    utl_file.fclose(f_file);
  END IF;
EXCEPTION
  WHEN OTHERS THEN
    IF utl_file.is_open(f_file) THEN
      utl_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/'目录也有权限,上面的结论是我测试的结果,如果有误,请指正,谢谢!

    全文完。

   

    

 

0
0
分享到:
评论
2 楼 53873039oycg 2014-01-26  
如意长风 写道
[color=blue][/color][size=x-large][/size][align=center][/align]

这是什么,是表情吗,怎么不显示?
1 楼 如意长风 2014-01-26  
[color=blue][/color][size=x-large][/size][align=center][/align]

相关推荐

    pl/sql快捷插件

    在本例中,下载的压缩包文件可能包含了这样的插件,用户需要将其解压,并将文件夹和DLL文件移动到PL/SQL Developer的安装目录下的"plugin"子目录。 安装插件的过程简单明了: 1. 首先,下载提供的PLSQL插件压缩包...

    PL/SQL 基本知识

    总的来说,PL/SQL是Oracle数据库开发的重要工具,通过学习和掌握PL/SQL,开发者可以更好地利用Oracle数据库的强大功能,构建高效、稳定的企业级应用。而`jbpm.sql`文件可能包含的流程管理相关代码,正是PL/SQL在企业...

    PL/SQL下载

    "PLSqlDeveloper"这个文件很可能是PL/SQL Developer的安装包。下载后,通常按照以下步骤进行安装: 1. 解压下载的压缩包到指定目录。 2. 运行安装程序,遵循安装向导的指示进行安装。 3. 在安装过程中,可能需要选择...

    PL/SQL开发文档1

    描述中提到的“android UI设计资料,内容详尽,利用它可以做漂亮的UI”,虽然这部分内容与标题中的PL/SQL并不直接相关,但从上下文推断,这可能是文档的一部分,用来说明文档的另一个方面,或者是文档的另一部分在...

    pl/sql 学习资料

    在这个“PL/SQL学习资料”压缩包中,包含了十一个PDF文件,覆盖了从基础到进阶的广泛主题。下面我们将详细探讨这些知识点。 1. **PL/SQL基础知识**: - PL/SQL结构:了解块的概念,包括声明部分、执行部分和异常...

    PL/SQL中文包

    总的来说,"PL/SQL中文包"是Oracle数据库开发者和管理员的重要工具,它通过提供中文支持,使国内用户能够更有效地利用PL/SQL进行数据库管理和应用开发。如果你是Oracle数据库的新手,这个中文包无疑会是你的得力助手...

    PL/SQL Developer 7.0

    这个PDF文件很可能是PL/SQL Developer 7.0的官方用户手册或教程,包含了详细的软件介绍、安装步骤、功能详解以及实例演示。它是开发者深入理解并有效利用这款工具的重要参考资料。 总结,PL/SQL Developer 7.0是...

    pl/sql developer使用教程

    PL/SQL Developer是一款由Allround Automations公司开发的集成开发环境(IDE),专门用于编写、测试和管理Oracle数据库的PL/SQL代码。本教程将深入介绍如何充分利用这款强大的工具,帮助初学者快速上手。 一、PL/...

    PL/SQL Developer 10.0.5版本带sn亲测好用推荐

    - "plsqldev1005.exe" 是PL/SQL Developer 10.0.5的安装程序,运行该文件即可开始安装过程。 - 需要注意的是,使用他人分享的序列号可能存在法律风险,建议通过官方渠道购买合法授权。 5. 使用技巧: - 自定义...

    pl/sql开发手册

    ### PL/SQL 开发手册:Oracle 初学者的全面指南 #### 一、PL/SQL:Oracle 的核心编程语言 PL/SQL(Procedural Language for SQL)是Oracle数据库的标准编程语言,它结合了SQL的强大数据操作能力和过程化语言的控制...

    PL/SQL Developer注册文件

    在使用PL/SQL Developer时,开发者可以利用其特性如代码自动完成、颜色高亮、结构浏览等来提高生产力。此外,它还支持数据库连接管理、表单和报告的创建,以及对触发器、存储过程、函数等PL/SQL元素的调试。对于大型...

    PL/SQL Developer 6.05注册版-1

    利用PL/SQL Developer授权功能,您可以方便的定义特定用户或规则所允许使用的功能。 <br>插件扩展——可以通过插件对PL/SQL Developer功能进行扩展。Add-ons页面提供插件可以免费下载。Allround Automations或...

    PL/SQL Developer 13.0.6中文版32位64位+注册码

    PL/SQL Developer是一款专为Oracle数据库开发人员设计的集成开发环境(IDE),它极大地提高了编写、调试和管理PL/SQL代码的效率。13.0.6版本是该软件的一个更新迭代,旨在提供更好的性能和稳定性,同时也可能包含了...

    PL/SQL Developer 64 bit

    DBA可以利用PL/SQL Developer 64位版轻松管理数据库对象,监控系统性能,进行备份恢复等工作,从而确保数据库系统的稳定运行。 #### 5. 数据库性能调优 通过对执行计划的分析,可以发现数据库性能问题所在,并采取...

    PL/SQL ExcelDocumentType

    在PL/SQL中处理这种格式的文件可能需要使用UTL_FILE包,或者如上所述,通过Java存储过程利用Apache POI等第三方库。 在实际应用中,使用PL/SQL操作Excel文件的场景可能包括: 1. 数据迁移:从Excel文件导入大量数据...

    PL/SQL Developer v8.0.zip

    利用PL/SQL Developer授权功能,您可以方便的定义特定用户或规则所允许使用的功能。 插件扩展——可以通过插件对PL/SQL Developer功能进行扩展。Add-ons页面提供插件可以免费下载。Allround Automations或其他用户...

    ORACLE PL/SQL 程序设计(第五版)

    《ORACLE PL/SQL 程序设计(第五版)》是Oracle数据库开发领域的一本经典教程,专注于讲解如何使用PL/SQL这一强大的过程化语言进行数据库编程。这本书旨在帮助读者掌握PL/SQL的基本概念、语法和高级特性,以便在实际...

    Oracle PL/SQL programming(5th Edition)

    ### Oracle PL/SQL Programming知识点概览 #### 一、书籍基本信息 ...通过阅读本书,读者可以快速掌握PL/SQL的基础知识,并学习如何利用Oracle Database 11g Release 2的强大功能来构建高效的应用程序。

    PL/SQL 13.0 64位-亲测可用

    首先,64位版本的PL/SQL意味着它可以充分利用64位操作系统提供的内存资源,处理大数据集和复杂的数据库操作时更加高效。与32位版本相比,64位版能够支持更大的数据类型,如大整数(BIGINT)和大对象(LOB),并且...

    PL/SQL DEVELOPER(用户指南中文版)

    这款工具提供了丰富的特性,使得编写、调试、测试和管理PL/SQL代码变得更加简单易行。 首先,让我们深入了解PL/SQL Developer的核心功能。PL/SQL是Oracle数据库特有的编程语言,结合了SQL的查询能力与过程式编程的...

Global site tag (gtag.js) - Google Analytics