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 ----當前程式的名稱
  [email protected]以"引數1" "引數2" ... 形式儲存所有引數
  $$ ----本程式的(程序ID號)PID
  $! ----上一個命令的PID

.