如何将shell脚本中的参数传递到内部嵌套的sql文件中?
一个shell中需要调用多个sql文件,主要是创建临时表然后通过where条件读取一些数据。这里的条件主要是日期,现在想从sql的上一层shell中将日期传递到sql文件...
一个shell中需要调用多个sql文件,主要是创建临时表然后通过where条件读取一些数据。这里的条件主要是日期,现在想从sql的上一层shell中将日期传递到sql文件中,应该如何实现呢?
展开
1个回答
展开全部
该怎么调用就怎么调用啊
sqlplus ${_username}\/${_password}@${_server} <<HERE>${_log_file}
set SERVEROUTPUT ON SIZE 1000000;
set linesize 32767;
var v_resultcode number;
var v_resultinfo VARCHAR2(500);
exec ${_Proc}('$_Cycle_ID','$_Eparchy_ID',1,31,:v_resultcode,:v_resultinfo);
print v_resultcode v_resultinfo
exit;
HERE
像_Proc[存储过程名称]、_Cycle_ID[日期],_Eparchy_ID[地市编码]都是参数传进来的;
sqlplus ${_username}\/${_password}@${_server} <<HERE>${_log_file}
set SERVEROUTPUT ON SIZE 1000000;
set linesize 32767;
var v_resultcode number;
var v_resultinfo VARCHAR2(500);
exec ${_Proc}('$_Cycle_ID','$_Eparchy_ID',1,31,:v_resultcode,:v_resultinfo);
print v_resultcode v_resultinfo
exit;
HERE
像_Proc[存储过程名称]、_Cycle_ID[日期],_Eparchy_ID[地市编码]都是参数传进来的;
追问
可能我没说太明白。我这里的参数传递时二次传递,第一层从windows传递到shell中,第二层再将这个参数从shell中传递到这个shell中会调用到的sql脚本里。经过多次测试,发觉只能做一层传递,即从windows传递到shell或者从shell传递到sql文件,但是不能直接传递两次从最外层到最内层
追答
噢,你是指类似于一个a.sh调用另外一个b.sh(这个b.sh中调用sql)!如果用export不能传递2层的话;那为何不简单点,先将sql中需要的变量、通过a.sh传给b.sh;b.sh和sql只有一层关系,不就是可以调用了嘛!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询