eygle.com   eygle.com
eygle.com  
 

« April 22, 2005 | Blog首页 | April 25, 2005 »



April 24, 2005

How to use Oracle BFILE

作者:eygle

出处:http://blog.eygle.com

如何使用Oracle的BFILE
1.创建相应的directory
使用具有足够权限的用处创建directory,具体参考:Using Create directory & UTL_FILE in Oracle
create or replace directory BDUMP_DIR as 
'/opt/oracle/admin/conner/bdump'; 

2.给相应的用户授权

grant read on directory BDUMP_DIR to eygle;

3.检查相应的文件是否存在

host ls -l /opt/oracle/admin/conner/bdump/alert_conner.log

4.数据操作

connect eygle/eygle create table eygle_test (id number, bfiles bfile ); insert into eygle_test values ( 1, bfilename ( 'BDUMP_DIR', 'alert_conner.log' ) );

BFILENAME函数用法参考:
The Usage Of BFILENAME Function
操作日志:

SQL> connect / as sysdba Connected. SQL> grant read on directory BDUMP_DIR to eygle; Grant succeeded. SQL> connect eygle/eygle Connected. SQL> host ls -l /opt/oracle/admin/conner/bdump/alert_conner.log -rw-r--r-- 1 oracle dba 1026 Apr 24 18:41 /opt/oracle/admin/conner/bdump/alert_conner.log SQL> create table eygle_test (id number, bfiles bfile ); Table created. SQL> insert into eygle_test values ( 1, bfilename ( 'BDUMP_DIR', 'alert_conner.log' ) ); 1 row created. SQL> commit; Commit complete.

Posted by eygle at 7:51 PM | Comments (1)


The Usage Of BFILENAME Function

作者:eygle

出处:http://blog.eygle.com

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

Posted by eygle at 7:36 PM | Comments (0)


Solaris Open File Limit

作者:eygle

出处:http://blog.eygle.com

Solaris操作系统具有打开文件数量的限制,数据库的db_files参数设置会受操作系统的参数限制。
Solaris使用两个参数来控制,可以通过在/etc/system文件中修改参数更改设置:

* set hard limit on file descriptors set rlim_fd_max = 4096 (or whatever) * set soft limit on file descriptors set rlim_fd_cur = 1024 (or whatever)

但是这些设置在32/64位平台下具有先天限制:

A 32-bit program using standard I/O is limited to 256 file descriptors。 A 64-bit program using standard I/O can use up to 2 billion descriptors。

具体可以参考:
Tunable Parameter Change History >> Kernel Parameters 也可以使用sysdef命令查看:

sysdef | grep descriptors

输出结果是16进制显示,第一个是soft limit, 第二个是hard limit:

# sysdef | grep descriptors 0x0000000000000100:0x0000000000001000 file descriptors

Posted by eygle at 10:08 AM | Comments (0)



CopyRight © 2004-2008 eygle.com, All rights reserved.