關於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;
可以看到圖片和資料都存在。
(由於源資料庫和目的資料庫的使用者和表空間都一樣,所以筆者截圖意義不大)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/20802110/viewspace-1063169/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 關於java中Excel的匯入匯出JavaExcel
- 關於Oracle 9i exp/imp 遷移過程中表分割槽是否匯入成功的測試Oracle
- sqlldr批量匯入匯出資料測試SQL
- sqlldr批次匯入匯出資料測試SQL
- 禪道測試報告匯出 -- 油猴指令碼測試報告指令碼
- 關於 Oracle 的資料匯入匯出及 Sql Loader (sqlldr) 的用法OracleSQL
- 關於oracle的備份 匯入Oracle
- Oracle增量匯入匯出Oracle
- 【oracle 匯入、匯出】escape 的作用。Oracle
- 【匯入匯出】Oracle 常用匯入匯出工具集錦Oracle
- Oracle 資料匯入匯出Oracle
- oracle排除表匯入匯出Oracle
- Oracle資料匯入匯出Oracle
- 高速的匯出/匯入:Oracle Data PumpOracle
- ORACLE統計資訊的匯出、匯入Oracle
- 【匯出匯入】匯出匯入 大物件物件
- Oracle資料庫匯入匯出。imp匯入命令和exp匯出命令Oracle資料庫
- 【匯出匯入】% 在匯入匯出中的應用。
- oracle匯入匯出之expdp/impdpOracle
- Oracle匯入(imp )與匯出(exp )Oracle
- 【ORACLE 匯入匯出】exp 錯誤Oracle
- ORACLE匯入匯出命令exp/impOracle
- Oracle資料泵的匯入和匯出Oracle
- Oracle exp/imp匯出匯入工具的使用Oracle
- oracle資料的匯入匯出imp/expOracle
- Oracle - 匯入匯出常用操作語句Oracle
- oracle資料匯出匯入(exp/imp)Oracle
- Oracle 遠端匯出匯入 imp/expOracle
- Oracle資料泵-schema匯入匯出Oracle
- oracle資料庫匯入匯出命令!Oracle資料庫
- Oracle資料匯入匯出詳解Oracle
- MySQL資料匯入匯出牛刀小試MySql
- 關於EasyExcel的資料匯入和單sheet和多sheet匯出Excel
- 【匯入匯出】sqlldr 匯入案例SQL
- Oracle AWR 資料匯入/匯出的步驟Oracle
- Oracle資料庫的匯入和匯出命令Oracle資料庫
- 使用EXPDP/IMPDP匯入匯出表中資料/後設資料測試
- Activity 流程模型匯入匯出-activity流程模型匯入匯出模型