ITPub博客

首页 > 数据库 > Oracle > 使用Oracle 10g拷贝文件

使用Oracle 10g拷贝文件

原创 Oracle 作者:litterbaby 时间:2007-04-01 11:18:32 0 删除 编辑

使用Oracle 10g拷贝文件

[@more@]

使用Oracle 10g拷贝文件

1、在操作系统上建立两个目录:

Last login: Sun Aug 20 15:05:45 from 192.168.0.1

Sun Microsystems Inc. SunOS 5.10 Generic January 2005

$ /bin/bash

bash-3.00$ pwd

/opt/oracle

bash-3.00$ cd kb

bash-3.00$ mkdir s_dir

bash-3.00$ mkdir d_dir

bash-3.00$ ls -l

total 72

drwxr-xr-x 2 oracle oinstall 512 8月 20 15:11 d_dir

drwxr-xr-x 2 oracle oinstall 512 8月 20 15:10 s_dir

2、在Oracle上创建两个directory

SQL> create directory source_dir as '/opt/oracle/kb/s_dir';

Directory created.

SQL> create directory dest_dir as '/opt/oracle/kb/d_dir';

Directory created.

3、通过查看视图dba_directories,可以看到建立的两个目录的信息。

SQL> select * from dba_directories;

OWNER DIRECTORY_NAME

------------------------------ ------------------------------

DIRECTORY_PATH

--------------------------------------------------------------------------------

SYS SOURCE_DIR

/opt/oracle/kb/s_dir

SYS DEST_DIR

/opt/oracle/kb/d_dir

4、使用过程将文件拷贝。

begin

dbms_file_transfer.copy_file(

source_directory_object => 'source_dir',

source_file_name => 'hello.txt',

destination_directory_object => 'dest_dir',

destination_file_name => 'copy.txt'

);

END;

/

文件的拷贝可以是本地之间,也可以是和远程数据库之间的数据文件的传送。与远程数据库之间应该是现将数据文件put到一个目录下,然后在有远程数据库get,这个和ftp相类似。

传送文件的限制,文件的大小必须是512字节的倍数,并且小于2TB。否则回出现以下的错误:

ORA-19505: failed to identify file "/opt/oracle/kb/s_dir/hello.txt"

ORA-27046: file size is not a multiple of logical block size

在传送数据文件是没有字符集的转换,被拷贝的文件应该是属于Oracle数据库。可以通过视图V$SESSION_LONGOPS监视拷贝的进程。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/222350/viewspace-907899/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 10g闪回总结
下一篇: 关于块清除
请登录后发表评论 登录
全部评论
  • 博文量
    131
  • 访问量
    465725