create or replace procedure t_ps_TryCalculate(v_date in varchar2)
AS
/*
每月績效校正,根據參數判斷員工業績是否通過。
參數:v_date 績效年月
*/
--定義錯誤變數
some_kinds_of_err EXCEPTION; -- Exception to indicate an error condition
v_ErrorCode NUMBER; -- Variable to hold the error message code
v_ErrorText VARCHAR2(2000); -- Variable to hold the error message text
v_Error_Sql varchar2(4000); --調試時使用的SQL語句
--定義使用到的變數
--定義遊標
CURSOR C_RESULT_INPUT IS
select * from dual; --遊標中的SQL語句。
v_result_row C_RESULT_INPUT%ROWTYPE; --定義行類型
begin
--初始化值
v_count := 0;
v_temp_orgcode :='';
v_temp_becode := '';
OPEN C_RESULT_INPUT;
LOOP
FETCH C_RESULT_INPUT INTO v_result_row;
-- 假如沒有檢索到(主表)資料,結束迴圈處理
Exit when C_RESULT_INPUT%NOTFOUND;
--具體迴圈的內容
--DOING
END LOOP;
-- 關閉遊標
CLOSE C_RESULT_INPUT;
Exception
--捕捉其他異常,並獲得 捕獲異常的內容
WHEN OTHERS THEN
v_ErrorCode := SQLCODE;
v_ErrorText := SUBSTR(SQLERRM, 1, 200);
--將錯誤資訊寫入日誌表
insert into t_ps_running_log (run_id,run_date,run_content,run_type,run_kind)values(t_ps_running_log_seq.nextval,to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'),v_Error_Sql,'2','1');
commit;
end t_ps_TryCalculate;