如何使用Oracle的BFILE

Jun 07, 2016 pm 03:15 PM
oracle 使用 どうやって 入力

欢迎进入Oracle社区论坛,与200万技术人员互动交流 >>进入 如何使用Oracle的BFILE 1.创建相应的directory 使用具有足够权限的用处创建directory,具体参考:Using Create directory UTL_FILE in Oracle create or replace directory BFILE_DIR as '/home/oracl

欢迎进入Oracle社区论坛,与200万技术人员互动交流 >>进入

如何使用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;      

如何使用Oracle的BFILE

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Oracleで2つの日付の間の日数を計算する関数 Oracleで2つの日付の間の日数を計算する関数 May 08, 2024 pm 07:45 PM

Oracleで2つの日付の間の日数を計算する関数

Oracle データベースのログはどのくらいの期間保存されますか? Oracle データベースのログはどのくらいの期間保存されますか? May 10, 2024 am 03:27 AM

Oracle データベースのログはどのくらいの期間保存されますか?

Oracle データベースの起動手順の順序は次のとおりです。 Oracle データベースの起動手順の順序は次のとおりです。 May 10, 2024 am 01:48 AM

Oracle データベースの起動手順の順序は次のとおりです。

オラクルで間隔を使用する方法 オラクルで間隔を使用する方法 May 08, 2024 pm 07:54 PM

オラクルで間隔を使用する方法

Oracle データベース サーバーのハードウェア構成要件 Oracle データベース サーバーのハードウェア構成要件 May 10, 2024 am 04:00 AM

Oracle データベース サーバーのハードウェア構成要件

Oracle で特定の文字の出現数を確認する方法 Oracle で特定の文字の出現数を確認する方法 May 09, 2024 pm 09:33 PM

Oracle で特定の文字の出現数を確認する方法

Oracle にはどれくらいのメモリが必要ですか? Oracle にはどれくらいのメモリが必要ですか? May 10, 2024 am 04:12 AM

Oracle にはどれくらいのメモリが必要ですか?

Oracleで文字列を置換する方法 Oracleで文字列を置換する方法 May 08, 2024 pm 07:24 PM

Oracleで文字列を置換する方法

See all articles