用shell指令碼匯出匯入oracle表的資料

2021-10-04 23:12:26 字數 1498 閱讀 6851

記錄一下如何使用shell指令碼匯出匯入oracle表的資料

#create the parile

echo file = $1

.dmp > $1

.par

echo log = exp_$1

.log >> $1

.par

echo compress = y >> $1

.par

echo buffer = 67108864 >> $1

.par

echo feedback = 100000 >> $1

.par

echo rows = y >> $1

.par

echo grants = n >> $1

.par

echo statistics = none >> $1

.par

echo tables = \(

$1\) >> $1

.par

echo query = \"where d_data_dt \<= to_date\(\'$3\',\'yyyymmdd\'\) and d_data_dt \>= to_date\(\'$2\',\'yyyymmdd\'\)\" >> $1

.par

#set env

export nls_lang='american_america.zhs16gbk'

#export

exp username/password@database parfile=$1

.par

以上是我們一直用的匯出dmp檔案的語句。

下面分析一下結構

在shell中

『>』 為建立: echo 「hello shell」 > out.txt

『>>』 為追加:echo 「hello shell」 >> out.txt

當out.txt 文字不存在時,』>'與『>>』都會預設建立out.txt文字,並將hello shell 字串儲存到out.txt中

當out.txt文字存在時,『>』會將out.txt文字中的內容清空,並將hello shell 字串存入

而『>>』會將 hello shell追加儲存到out.txt的末尾

最後是匯入dmp的語句

imp username/password@database file=file.dmp buffer=67108864 feedback=100000 statistics=none rows=y ignore=y

imp 使用者名稱/密碼@例項名 file=d:\data\x.dmp log=d:\data\x.log full=y ignore=y;

其中:file 表示待匯入的dmp檔案位置;

log 指定匯入過程log的記錄檔案位置,注意,即使指定了將記錄儲存到log檔案裡,螢幕列印也不會關閉;

full 表示將dmp全部內容匯入;

ignore 表示忽略表建立過程中的錯誤,比如表名已存在時將直接覆蓋原來表的內容;

oracle 指令碼匯入匯出

匯入 imp ics ics localhost 1521 orcl file f ics.dmp full y 匯出 資料匯出 1 將資料庫test完全匯出,使用者名稱system 密碼manager,例項名test 匯出到d daochu.dmp中 exp system manager test...

shell匯出和匯入redis

1 匯出redis plain view plain copy bin bash redis host localhost redis port 6379 redis db 1 keyname redis hash keyfile key.txt echo keys keyname redis cl...

oracle匯出與匯入指令碼

匯出指定使用者下的所有表 環境變數設定 export oracle sid bdyz export oracle base u01 oracle11g r2 export oracle home oracle base 11g export ld library path oracle home l...