linux脚本调度存储过程,SHELL调用存储过程

1、测试用例

#!/bin/sh

#日期变量可设成传入参数

#exec_date=`date +"%Y%m%d"`

# -S 设置无提示模式, 该模式隐藏命令的 SQL*Plus 标帜, 提示和回显的显示

sqlplus -S "scott/oracle"

</dev/null

declare

--声明变量

i_current_date date;

v_output varchar2(20):=‘OK‘;

v_descmg  varchar2(20):=‘OK‘;

begin

--日期赋值

i_current_date

:=to_date(‘2014-05-18‘,‘yyyy-mm-dd‘);

--执行过程

pkg_sql_proc.remove_data(i_acctdt=> i_current_date,

o_output => v_output,

o_descmg => v_descmg);

end;

/

exit;

!

2、将变量进程参数化

#!/bin/sh

#日期变量可设成传入参数或者使用如下方式

exec_date=`date +"%Y%m%d"`

#数据库用户变量也可以传入

dbuser=scott

dbpasswd=oracle

#过程名称初始化

proc_name="pkg_sql_proc.remove_data"

#sqlplus声明

sql_stmt=`sqlplus -S "$dbuser/$dbpasswd" <

--修改session日期格式

alter session set nls_date_format=‘yyyy-mm-dd‘;

declare

v_output varchar2(20):=‘OK‘;

v_descmg  varchar2(20):=‘OK‘;

begin

--日期转换

i_current_date :=to_date($exec_date,‘yyyymmdd‘);

$proc_name(i_current_date, v_output, v_descmg);

end;

/

!`

原文:http://www.cnblogs.com/oracle-dba/p/3735069.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个示例脚本,用于在Linux中使用cron定时调度Oracle数据库中的存储过程: ```bash #!/bin/bash #设置ORACLE_HOME和LD_LIBRARY_PATH export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1 export LD_LIBRARY_PATH=$ORACLE_HOME/lib #设置Oracle环境变量 export ORACLE_SID=orcl export PATH=$ORACLE_HOME/bin:$PATH #设置日志文件路径 LOGFILE=/home/oracle/logs/my_proc.log #调用存储过程 sqlplus -S username/password@database << EOF >> $LOGFILE set serveroutput on; set feedback off; begin my_proc(); end; / EOF ``` 在此示例中,我们首先将ORACLE_HOME和LD_LIBRARY_PATH设置为Oracle安装目录和库目录。然后,我们设置ORACLE_SID和PATH环境变量以连接到正确的数据库和使用正确的Oracle命令。接下来,我们定义一个日志文件路径,以便在存储过程运行时记录任何输出或错误消息。最后,我们使用sqlplus命令调用存储过程,并将输出记录到日志文件中。 要使用cron定时运行此脚本,请执行以下步骤: 1. 使用命令“crontab -e”打开cron编辑器。 2. 在编辑器中添加以下行: ``` 0 0 * * * /path/to/my_script.sh ``` 此行将在每天午夜运行脚本。您可以根据需要更改时间和日期,或使用其他cron时间设置选项。将“/path/to/my_script.sh”替换为实际脚本文件的路径。保存并退出编辑器。 3. 等待cron定时器触发脚本,并查看日志文件以获取有关存储过程运行的详细信息。 请注意,此示例仅供参考。您需要根据自己的环境和需求进行调整和修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值