Database PL/SQL Packages and Types Reference 168 UTL_FILE
2016-12-06 20:51
603 查看
使用UTL_FILE包,PL/SQL程序可以读写操作系统文本文件。UTL_FILE提供一个操作系统I/O文件流的受限版本。 这个章节包括以下主题: 一.使用UTL_FILE 1.安全模型 2.类型 3.规则和限制 4.异常 5.示例 二.UTL_FILE子程序语法
一.使用UTL_FILE
1.安全模型
UTL_FILE是客户端和服务端都可以使用的PL/SQL。客户端(文本输入输出)和服务端接口都是受到服务器端文件系统权限检查的影响。 在过去,UTL_FILE功能的可用目录是指定使用UTL_FILE_DIR参数来初始化的文件。但是,UTL_FILE_DIR路径是不建议使用的。你使用创建目录(CREATE DIRECTORY)特性来代替UTL__FILE_DIR是提倡的。目录对象对于UTL_FILE应用程序管理者提供了更多灵活性和细粒控制,可以维持动态引用(这就说明,不用切断数据库连接)并且兼容其他Oracle工具。CREATE DIRECTORY权限只能默认由SYS和SYSTEM赋予。 在UNIX系统中,一个由FOPEN函数创建的文件的拥有者是正在运行实例的影子进程的拥有者。通常这个拥有者是ORACLE。使用FOPEN创建的文件总是对于使用UTL_FILE子程序是可读写的,但是没有权限而需要读取PL/SQL外部文件的用户可能需要从系统管理员得到权限。
2.类型
TYPE file_type IS RECORD ( id BINARY_INTEGER, datatype BINARY_INTEGER);
文件位置和文件名参数作为分开的字符串是支持FOPEN函数的,所以文件路径可以由存在的目录的列表检查,具体是由ALL_DIRECTORIES存在目录对象的视图来检查。而且,文件路径和文件名必须表示为一个在系统上合法的文件名,并且目录必须存在。存在目录的子目录不是必要的但也是可以存在的;具体使用一个完整的路径名匹配一个ALL_DIRECTORY对象是很必要的。 UTL_FILE在读取时会隐式转换行结束符,因此在一个GET_LINE命令会影响字节返回数目。例如,UTL_FILE.GET_LINE的len参数明确数据需要的字节数,实际上返回给用户的字节数要比以下参数字符数小: GET_LINE len参数,或者直到下一行结束符的字节数,或者由UTL_FILE.OPEN确定的max_linesize参数。 FOPEN的max_linesize参数必须是1到32767范围内的数字。如果没有显式给出,Oracle提供的默认值是1024。GET_LINE的len参数必须是1到32767范围内的数字。如果没有显式给出,Oracle提供的默认值是max_linesize的值。如果max_linesize和len被定义成不同的值,更小的值将被优先使用。 UTL_FILE.GET_RAW忽略行结束符并且返回实际被GET_RAW的len参数需要的字节数。 当数据编码到字符集里读并且全球化支持通知(例如以NLS_LANG)它被编码到另一个字符集,结果是不确定的。如果NLS_LANG已经设置,应该和数据库字符集设置保持一致。
3.规则和限制
操纵系统指定的参数,例如在UNIX中的C-shell环境变量,不能在文件位置和文件名参数中被使用。 UTL_FILE I/O的性能和标准操作系统流文件I/O(OPEN,GET,PUT,CLOSE)的性能相似,但是有一些限制。例如,你使用FOPEN函数来返回一个文件句柄,这个句柄是你使用调用来GET_LINE或者PUT来执行流I/O指向一个文件的。当文件I/O完成,你调用FCLOSE来完成任何输出和文件关联的自由资源。
4.异常
5.示例
略。
第二部分 UTL_FILE子程序语法
待续
原文连接
相关文章推荐
- Oracle Database PL/SQL Packages and Types Reference
- oracle帮助文档——PL/SQL Packages and Types Reference
- PL/SQL 3.3以上的版本中,UTL_FILE包答应用户通过PL/SQL读写操作系统文件
- Declare Variables, Constants and Types in Oracle PL/SQL
- filegroup reference and partitioning scheme' is not supported in this version of sql server.
- [SQL Server][FILESTREAM] -- How to Detach and Attach a SQL Server FILESTREAM Enabled Database
- pl/sql读写文件 spool和UTL_FILE package
- PL/SQL database character set(AL32UTF8) and Client character set(ZHS16GBK) are different
- 使用PL/SQL的UTL_FILE写xls和csv格式文件(转)
- PL/SQL-->UTL_FILE包的使用介绍
- 使用PL/SQL的UTL_FILE写xls和csv格式文件
- PL/SQL User's Guide and Reference:PL/SQL Architecture
- A conflicting scenario in header file sqltypes.h of Timesten and Informix
- [SQL Server][FILESTREAM] -- How to Backup and Restore a SQL Server FILESTREAM Enabled Database
- Oracle: import tables use .dmp file in PL/SQL Developer
- DB2 SQL PL : Essential Guide for DB2 UDB on Linux, UNIX, Windows, i5/OS, and z/OS, Second Edition
- Sql server database syntax reference 01
- Database user and Sqlserver system user
- Advanced DBA certification guide and reference for DB2 universal database v8 for Linux, UNIX, and Wi
- Oracle PL/SQL Language Pocket Reference