当前位置:首页 >> 

如何使用Oracle的BFILE

来源: 本站原创 字体:[ ] 我要投稿

   如何使用Oracle的BFILE 1.创建相应的directory 使用具有足够权限的用处创建directory,具体参考:Using Create directory & UTL_FILE in Oracle create or replace directory BFILE_DIR as ′/home/oracle/bfiletest′; [oracle@ts01 bfiletest]$ sqlplus ′/ as sysdba′ SQL*Plus: Release 9.2.0.6.0 - Production on Mon Jan 23 10:54:17 2006 Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved. Connected to: Oracle9i Enterprise Edition Release 9.2.0.6.0 - Production With the Partitioning, OLAP and Oracle Data Mining options JServer Release 9.2.0.6.0 - Production SQL> show parameter utl_file_dir ***************9.2开始,已经废弃了这个参数 NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ utl_file_dir string SQL> SQL> create or replace directory BFILE_DIR as 2 ′/home/oracle/bfiletest′; Directory created. Elapsed: 00:00:00.05 SQL> SQL> col DIRECTORY_PATH for a50 SQL> select * from dba_directories; OWNER DIRECTORY_NAME DIRECTORY_PATH ------------------------------ ------------------------------ -------------------------------------------------- SYS MEDIA_DIR /oracle/product/920/demo/schema/product_media/ SYS LOG_FILE_DIR /oracle/admin/TSMISC02/create/ SYS DATA_FILE_DIR /oracle/product/920/demo/schema/sales_history/ SYS KU$_STYLESHEET_DIR /oracle/product/920/rdbms/xml/xsl SYS BFILE_DIR /home/oracle/bfiletest Elapsed: 00:00:00.01 SQL> 2.给相应的用户授权 grant read on directory BFILE_DIR to lunar; SQL> grant read on directory BFILE_DIR to lunar; Grant succeeded. Elapsed: 00:00:00.04 SQL> 3.检查相应的文件是否存在 host ls -l /home/oracle/bfiletest/bfiletest_file.txt SQL> host ls -l /home/oracle/bfiletest/bfiletest_file.txt -rw-r--r-- 1 root root 349 Oct 31 2003 /home/oracle/bfiletest/bfiletest_file.txt SQL> 4.数据操作 BFILENAME函数的语法如下:BFILENAME(′directory′,′filename′) 该函数用以返回一个BFILE文件位置指针,指针和文件系统上的LOB binary文件相关联。 ′directory′ 是路径名,通过create directory方式创建。 ′filename′ 是文件系统上的文件名称 在你在SQL,PL/SQL或者DBMS_LOG包,或者OCI中使用BFILENAME函数之前,你必须创建相应的directory并且关联相应的物理文件. 以下是一个示例: CREATE DIRECTORY media_dir AS ′/demo/schema/product_media′; create table lunar_test (product_id number, ad_id number, ad_graphic bfile ); INSERT INTO print_media (product_id, ad_id, ad_graphic) VALUES (3000, 31001, bfilename(′MEDIA_DIR′, ′modem_comp_ad.gif′)); 参考:Oracle9i SQL Reference Release (9.2) Part Number A96540-02 再例如: SQL> connect lunar/lunar create table lunar_test (id number, bfiles bfile ); insert into lunar_test values ( 1, bfilename ( ′BFILE_DIR′, ′bfiletest_file.txt′ ) ); SQL> connect lunar/lunar Connected. SQL> create table lunar_test (id number, bfiles bfile ); Table created. Elapsed: 00:00:00.03 SQL> insert into lunar_test values ( 1, bfilename ( ′BFILE_DIR′, ′bfiletest_file.txt′ ) ); 1 row created. Elapsed: 00:00:00.00 SQL> commit; Commit complete. Elapsed: 00:00:00.00 SQL> declare fhandle utl_file.file_type; begin fhandle := utl_file.fopen(′BFILE_DIR′, ′lunartest1.txt′, ′w′); utl_file.put_line(fhandle , ′aaa′); utl_file.put_line(fhandle , ′bbb′); utl_file.fclose(fhandle); end; / declare fhandle utl_file.file_type; fp_buffer varchar2(4000); begin fhandle := utl_file.fopen (′BFILE_DIR′,′lunartest1.txt′, ′R′); utl_file.get_line (fhandle , fp_buffer ); dbms_output.put_line(fp_buffer ); utl_file.get_line (fhandle , fp_buffer ); dbms_output.put_line(fp_buffer ); utl_file.fclose(fhandle); end;

上一页:高负载下的mysql数据库彻底优化解决方法
下一 页:本地管理表空间与字典管理表空间的比较
关于我们 - 网 站地图 - 友情连接 - 登陆投稿 - 版权声明 - 广告服务 - 联系我们 - 留言本
Copyright © 2008-2009 Www.999net.Com All Rights Reserved
E-mail:WebMaster@999net.com
Powered BY 中国站长网 - 草根站长资讯信息中心,打造中国最优秀站长网