如何在unix脚本中执行具有out参数的oracle过程

时间:2015-06-08 12:28:55

标签: oracle unix oracle10g

任何人都可以告诉我如何执行一个简单的oracle存储过程,在shell脚本中有参数。这意味着它应该将一个值返回到unix环境。

2 个答案:

答案 0 :(得分:0)

我假设您要使用SQLPLUS启动脚本。这个答案解释了如何将out参数的值赋值给SQLPLUS中的绑定变量。

Call stored procedure from sqlplus

您可以使用此值退出sqlplus并在调用脚本中使用该值。

dat <- read.table('tt.txt', header=TRUE)
date <- seq(as.Date('1998-05-01'), as.Date('2012-10-31'), by='day')
dat2 <- cbind(read.table(text=format(date, '%Y %j'), 
              col.names=c('year', 'jday')),MAX_TEMP=dat[1])

但这通常仅限于有限范围内的数值。

答案 1 :(得分:0)

有很多方法,但我倾向于使用的方法如下所示。

sqlplus脚本 the_sql_script.sq l

var ret varchar2(2000)
exec the_procedure ( the_out_param => :ret );
set pages 0 head off lines 200 trimspool on
spool sqlplus.return
select 'RETURN_VALUE=' || :ret FROM dual;
spool off
quit

在shell中:

sqlplus / @ the_sql_script.sql
. ./sqlplus.return
echo $RETURN_VALUE