當前位置:首頁 » 編程軟體 » oracle調用shell腳本

oracle調用shell腳本

發布時間: 2025-06-10 17:49:27

A. 求一份shell腳本,需求是:從Oracle資料庫中提取一個表中的數據輸出到文件,並且每條記錄一行;

應用spool命令,大量數據匯出很方便,腳本內容大致如下:
--============================================
#!/bin/sh
#第一步
sqlplus -s 用戶名/密碼@服務名<<EOF
spool customers.sql --輸出文件路徑及名稱
set trimspool on
set linesize 8000
set pagesize 50000
set newpage 1
set heading off
set term off
set feedback off
set sqlblankline off
SELECT A || '|+|' || --欄位A
B || '|+|' || --欄位B
C || '|+|' || --欄位C
D || '|+|' || --欄位D
E || '|+|' || --欄位E
F || '|+|' || --欄位F
G || '|+|' || --欄位G
TO_CHAR(H,'YYYYMMDD HH:MM:SS') || '|+|' --欄位H,可以使用函數
FROM CUSTOMERS;--表名
spool off
exit
EOF
--=======================
其中'|+|'為分隔符,也可以換成你說的逗號,即','。調用該腳本後,在根目錄下生成customers.sql文件。

B. 寫個shell腳本連接oracle資料庫查詢某表數據導出為txt文件,再發送到第三

1、簡單的單列
#!/bin/sh
sqlplus 'user001/12345678'<< EOF
set define off
set hea off
spool vip1.txt
select username from ACCOUNT where LEVEL=7;
spool off
quit;
EOF
sed -i 's/[ ]*//g' ~/vip1.txt
sed -i '/^$/d' ~/vip1.txt
sed -i '1d' ~/vip1.txt
sed -i '$d' ~/vip1.txt
scp -P22 ~/vip1.txt [email protected]:/root
2、復雜的多列
#!/bin/sh
cid=$1;
today=`date +%Y-%m-%d-%H.%M`
ym=`date +%Y%m`
ymd=`date -d -1days +%Y%m%d`
last_ym=`date -d last-month +%Y%m`
next_ym=`date -d next-month +%Y%m`
file=chat_recorder_${cid}_20140707-11.xls

if [[ $1 == '' ]];then
echo "Usage: $0 company_id "
exit 0;
fi
sqlplus 'user002/12345678' << EOF
set linesize 200
set term off verify off feedback off pagesize 999
set markup html on entmap ON spool on preformat off
alter session set nls_date_format='YYYY-MM-DD HH24:MI:SS';
spool ${file}
select a.*,b.* from recorder_${ym} a,t_${ym} b where a.company_id='$cid' and a.create_time between TO_DATE('2014-07-07 00:00:00', 'YYYY-MM-DD HH24:MI:SS') and TO_DATE('2014-07-12 00:00:00', 'YYYY-MM-DD HH24:MI:SS') and a.chat_id=b.chat_id order by b.chat_id ;
spool off
quit;
EOF
sed -i '/select/d' $file
zip -r ${file}.zip $file
scp -P22 ${file}.zip [email protected]:/opt

C. 求Oracle EBS 中,用Linux監控frmweb進程,殺掉CPU佔用超過40%,佔用時間超過30分鍾的進程的shell腳本

psaux|grepfrmweb|awk-va="0:30"'{if($10>a&&$4>40){print$2}}'
psaux|awk-va="0:30"'$0~/frmweb/{if($10>a&&$4>40){print$2}}'


這個意思?目的是獲取它的PID,如果是這個意思,你再判斷獲取的PID是否為空,再kill就行了

D. oracle存儲過程中調用一個shell腳本,用於進行一些操作,已經賦許可權,但是執行不了

shell的環境變數問題,你在shell內部的變數是獲取不到外部執行結果的。

E. oracle存儲過程調用unix上shell腳本不成功

echo "`date`運行存儲過程 " >>$LOGFILE 2>&1
sqlplus -s [email=$USERNAME/$PASSWD@$HOSTNAME]$USERNAME/$PASSWD@$HOSTNAME[/email] <<EOF >>$LOGFILE 2>&1
exec ibss.p_gen_crm_to_ocs('${day_s}000000','${DATE}000000');
EOF

F. 請教如何在oracle的存儲過程中執行一個shell腳本

你可以把執行過程和執行shell腳本寫在一個shell里

例如

你的shell邏輯
執行存儲過程
繼續你的shell邏輯,執行腳本。

熱點內容
mmpose如何配置 發布:2025-06-12 04:18:36 瀏覽:443
雲存儲種類 發布:2025-06-12 03:39:58 瀏覽:506
第五人格一個杯子里最多有多少密碼機 發布:2025-06-12 03:35:45 瀏覽:537
日本dns地址和伺服器ip 發布:2025-06-12 03:24:38 瀏覽:501
線切割hf用的加密狗 發布:2025-06-12 03:12:53 瀏覽:285
為什麼蘋果qq和安卓版本不一樣 發布:2025-06-12 02:24:24 瀏覽:805
wap商城源碼 發布:2025-06-12 01:50:18 瀏覽:1002
腳本的殼 發布:2025-06-12 01:16:15 瀏覽:37
sql植入 發布:2025-06-12 01:05:04 瀏覽:684
安卓11系統彩蛋有什麼用 發布:2025-06-12 01:04:04 瀏覽:373