2015-07-22 81 views
0

我想使用shell腳本調用sqlplus oracle中的過程, 我的過程名稱是getdate_proc,帶有兩個參數startdate和enddate。 我想設置startdate = sysdateenddate = sysdate + 5 days使用shell腳本在sqlplus oracle中調用帶有日期參數的過程

for example :execute getdate_proc(to_date('05/05/2015', 'MM-DD-YYYY'),to_date('05/09/2015','MM-DD-YYYY')) 
下面

是我的代碼:

#!/usr/bin/ksh 
sqlplus -s /nolog << EOF 
connect scott/tiger 
--execute procedure with parameter 
execute getdate_proc(to_date(sysdate, 'MM-DD-YYYY'),to_date(sysdate + 5days,'MM-DD-YYYY')) 
--set spooling to save in csv 
set underline off 
SET RECSEP OFF 
set verify off 
set colsep ',' 
set linesize 300 
set trimspool on 
spool /home/user/project/samp.csv 
select * from att2; 
spool off 
set verify off 

回答

2

我解決我的問題與此代碼:

#!/usr/bin/ksh 
date1='date' 
date1=$(/bin/date --date="$date1" -d "+0 day" +"%F") 
date2=$(/bin/date --date="$date1" -d "+4 day" +"%F") 
echo $date1 
echo $date2 
sqlplus -s /nolog << EOF 
connect scott/tiger 
--execute procedure with parameter 
execute attendance(to_date('$date1', 'YYYY-MM-DD'),to_date('$date2','YYYY-MM-DD')) 
--set spooling to save in csv 
set underline off 
SET RECSEP OFF 
set verify off 
set colsep ',' 
set linesize 300 
set trimspool on 
spool /home/user/project/samp.csv 
select * from att2; 
spool off 
set verify off 

:)歡呼