【问题标题】:call a procedure with date parameter in sqlplus oracle using shell script使用shell脚本在sqlplus oracle中调用带有日期参数的过程
【发布时间】:2015-07-22 05:11:33
【问题描述】:

我想使用 shell 脚本在 sqlplus oracle 中调用一个过程, 我的过程名称是getdate_proc,带有两个参数,startdate 和 enddate。 我想设置startdate = sysdateenddate = sysdate + 5 days

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

【问题讨论】:

    标签: oracle shell unix sqlplus


    【解决方案1】:

    我用这段代码解决了我的问题:

    #!/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
    

    :) 欢呼

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-12-27
      • 2012-11-15
      • 2013-09-01
      • 1970-01-01
      • 2022-10-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多