向shell或者sql脚本传参或接收参数的方法

1.向shell中传参数的方法,后面是重定向,将日志导出到当前目录下
sh a.sh aaa bbb > a.log
2.shell中接收参数的方法
echo "@a.sql $1"|sqlplus $1/$2
3.通过shell调用sql脚本,并向其中传参数的方法:
echo "@a.sql $1"|sqlplus $1/$2
4.sql脚本接收参数的方法
define v_str=&1
begin
p_insert_log('test','&v_str');
end;
/

 

注意:

用sql脚本最后必须写“/”,才能运行。如果直接执行语句就不用,执行begin end这样的程序块就需要。

 

下面是转帖

 

  1、 位置参数
  由系统提供的参数称为位置参数。位置参数的值可以用$N得到,N是一个数字,如果为1,即$1.类似C语言中的数组,Linux会把输入的命令字符串分段并给每段进行标号,标号从0开始。第0号为程序名字,从1开始就表示传递给程序的参数。如$0表示程序的名字,$1表示传递给程序的第一个参数,以此类推。
  2、 内部参数
  上述过程中的$0是一个内部变量,它是必须的,而$1则可有可无。和$0一样的内部变量还有以下几个。
  $# ----传递给程序的总的参数数目
  $? ----上一个代码或者shell程序在shell中退出的情况,如果正常退出则返回0,反之为非0值。
  $* ----传递给程序的所有参数组成的字符串。
  $n ----表示第几个参数,$1 表示第一个参数,$2 表示第二个参数 ...
  $0 ----当前程序的名称
  $@----以"参数1" "参数2" ... 形式保存所有参数
  $$ ----本程序的(进程ID号)PID
  $! ----上一个命令的PID

你可能感兴趣的:(向shell或者sql脚本传参或接收参数的方法)