解決shell 裏執行sqlldr commond not found問題

shell 裏執行sqlldr,not found問題解決

 

背景說明

項目需要定時將服務器裏面的日誌文件中的某些數據提取出來,導入到相同服務器的ORACLE數據庫表中, 方式是寫shell腳本然後直接進行數據處理,然後使用sqlldr 和ctl的方式將數據導入到數據庫中,

 

之前使用過sqlldr2導出大批量數據,sqlldr倒還是頭一次,腳本和數據庫配置都沒問題,倒是執行到sqlldr命令的時候報錯了

sqlldr command not found

考慮了兩個問題,一個是環境變量裏字符集的問題,另外一個是執行用戶的問題,逐一排查,首先排除/etc/profile中有多餘環境字符的問題,然後第二個執行用戶的問題,最開始執行是用的root用戶,於是使用 su oracle切換成 oracle用戶,但還是報錯,在網上找了半天,發現一個說話,su oracle 和 su - oracle 是兩種不同效果,第一個只切換用戶,第二個命令還要切換環境變量,試驗了一下就成功了。

 

值得注意的是,需要把執行腳本.sh和 .ctl 文件所屬分組都改成 oracle:dba ,使用chown命令

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章