oracle9i导入文件,关于Oracle 9i导入/导出效果的测试报告

测试目的:

确定在数据库导入、导出过程中数据(尤其是BLOB类型数据)是否能正常访问和使用。

测试环境:

源数据库:Oracle 9i on windows 2003 32bit

目的数据库:Oracle 9i on Red Hat Linux 4 32bit

测试思路:

将源数据库整库导出,然后分用户导入数据,其中,数据中包括有BLOB类型的数据。导入完成之后查看数据是否能访问,BLOB字段中的图片是否可读。

测试步骤:

1.创建基础环境:

确保数据库和系统能正常使用。

在Windows数据库中创建测试用户TOM和表空间TOM:

----------------创建用户表空间-----------------

create tablespace TOM

datafile '/opt/ora10g/oradata/jssbook/jssbook/TOM01.dbf'

size 50 M

extent management local

uniform size 1M;

-----------------创建用户-------------------------

create user TOM

identified  by jackson

default tablespace TOM

account unlock

profile default

--------------确定用户创建成功--------------------

select * from dba_users where username = 'TOM'

-----以TOM登陆执行如下命令!------

select  * from user_objects

create table test1 as select * from user_objects;

create table testblob (id int,photo blob);

commit;

在Linux中创建对应的用户和表空间。但不插入数据。

2.向testblob表中插入图片,方法如下:

a,linux oracle用户建一个文件夹,从windows client传几个图片过去,(文件夹权限读写,owner oracle)

b,规范文件名,小心有重名被替换而丢失

[oracle@test imgs]$ ls

11.gif  12.gif  19.gif  1.gif  31.gif  8.gif

[oracle@test imgs]$ i=100;for img in *.gif;do ((i++)); mv "$img" ${i}.gif;done

[oracle@test imgs]$ ls

101.gif  102.gif  103.gif  104.gif  105.gif  106.gif

c,导入数据库

SQL> conn TOM/password

Connected.

SQL> create table testblob(id int,photo blob);

Table created.

SQL> create or replace directory imgpath as‘C:\imgs';

create or replace directory imgpath as 'C:\imgs'

*

ERROR at line 1:

ORA-01031: insufficient privileges

SQL> conn system/password

Connected.

SQL> create or replace directory imgpath as 'C:\imgs';

Directory created.

SQL> grant read,write on directory imgpath to TOM;

Grant succeeded.

SQL> conn TOM/password

Connected.

SQL> declare

2  l_blob blob;

3  l_bfile bfile;

4  begin

5  for i in 101..106 loop

6  insert into testimg(id,photo)

7  values(1,empty_blob())

8  returning photo into l_blob;

9  l_bfile :=bfilename('IMGPATH',i||'.gif');

10  dbms_lob.fileopen(l_bfile);

11  dbms_lob.loadfromfile(l_blob,l_bfile,dbms_lob.getlength(l_bfile));

12  dbms_lob.fileclose(l_bfile);

13  end loop;

14  commit;

15  end;

16  /

PL/SQL procedure successfully completed.

SQL> select id,dbms_lob.getlength(photo) blen from testblob;

ID       BLEN

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

1        700

1       6371

1        699

1        552

1        493

1        659

6 rows selected.

3.整库导出源数据库:

exp  system/password full=y  file=FULL20120604.dmp  log=FULL20120604_exp.log  buffer=20480000

通过操作系统命令将exp出来的dmp文件拷贝到目的数据库中。

4.按照用户导入数据:

imp  system/password  fromuser=TOM   touser=TOM  file= FULL20120604.dmp  log= FULL20120604_imp.log

5.验证数据完整性和可用性:

select * from test1;

select * from testblob;

可以看到图片和数据都存在。

(由于源数据库和目的数据库的用户和表空间都一样,所以笔者截图意义不大)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值