需求:把目標路徑的 data 檔案 用 sql loader 命令讀取到 Oracle 資料庫中。
詳細:
檔案路徑(linux 服務器): /aaa/bbb/config load.ctl
/aaa/bbb check.ctl
/aaa/bbb newData.dat
config 檔案夾中的 load.ctl 是SQL Loader 的控制檔案,先判斷 check.ctl 是否存在 如果已經存在代表 newData.dat 已經 Ready. 這時候呼叫
load.ctl 把 newData.dat 中的資料加載到資料庫中。
要求使用 Linux 命令 寫一個 判斷檔案是否存在 和 呼叫 load.ctl 的shell 腳本。
求大神 解惑,需要具體的 詳細 腳本和注釋,資料庫鏈接賬號和資料檔案內容可以 隨意撰寫。
uj5u.com熱心網友回復:
#!/bin/sh#shell腳本執行日志
fdate=`date +%Y%m%d%H%M%S`
LOG_FILE= /aaa/bbb/config/shelltask_${fdate}.log
echo >> $LOG_FILE
chmod 666 $LOG_FILE
echo ==== started on `date` ==== >> $LOG_FILE
echo >> $LOG_FILE
if [ -e /aaa/bbb/check.ctl ]; then
echo "exists heck.ctl ,data ready,start load data !" >>${LOG_FILE}
sqlldr userid=lzj/lzj control=/aaa/bbb/config/load.ctl log="/aaa/bbb/config/loaddatalog1.log"
exit 1
fi
exit 0
uj5u.com熱心網友回復:
控制檔案:load.ctl內容:load data
infile '/aaa/bbb/newData.dat'
#存盤資料的表t_test1,注意truncate 會把原資料清空再導。資料檔案欄位分隔符根據實際情況修改,表欄位型別要和給出的資料檔案匹配。
TRUNCATE into table t_test1
Fields terminated by '|' TRAILING NULLCOLS
(field1,field2,field3,field4,field5,field6,field7)
資料檔案內容樣例:
test|test|aasdf||sdfsdf|asdf||sadfsdfsd|asdfad|
test|test|aasdf||sdfsdf|asdf||sadfsdfsd|asdfad|
test|test|aasdf||sdfsdf|asdf||sadfsdfsd|asdfad|
test|test|aasdf||sdfsdf|asdf||sadfsdfsd|asdfad|
test1234|test|aasdf||sdfsdf|asdf||sadfsdfsd|asdfad|
uj5u.com熱心網友回復:
參考這個應該就可以搞定了。網路上也很多sqlloader的文章uj5u.com熱心網友回復:
在處理SQL Loader 的程序中 要處理那些Oracle 例外呢?
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/13072.html
標籤:開發
上一篇:oracle em配置
下一篇:pl/sql 美化器問題
