SHELL呼叫儲存過程

2022-02-22 07:49:49 字數 1346 閱讀 3921

1、測試用例

#!/bin/sh

#日期變數可設成傳入引數

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

# -s 設定無提示模式, 該模式隱藏命令的 sql*plus 標幟, 提示和回顯的顯示

sqlplus -s "scott/oracle" 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;

/

!`

shell呼叫儲存過程

elsif v num 2 then execute immediate v sql using in param1 in param2 out p out sqlcode,out p out errmsg get p out sqlcode p out sqlcode awk f p out sq...

Oracle儲存過程呼叫儲存過程

oracle儲存過程呼叫有返回結果集的儲存過程一般用光標的方式,宣告乙個游標,把結果集放到游標裡面,然後迴圈游標 declare newcs sys refcursor cs1 number cs2 number cstype table rowtype table列的個數和newcs返回的個數一樣...

呼叫儲存過程

用乙個命令物件呼叫儲存過程,就是定義儲存過程的名稱,給過程的每個引數新增引數定義,然後執行命令。1.呼叫沒有返回值的儲存過程 呼叫儲存過程的最簡單示例是不給呼叫者返回任何值。下面定義了兩個這樣的儲存過程,乙個用於更新現有的region記錄,另乙個用於刪除指定的region記錄。1 記錄的更新 cre...