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...