我是oracle新手,所以不確定如何在oracle中編寫存儲過程。目前,我正在使用Google在網上搜索一些關於SP的文章/博客。我開始想知道這件事。即使那樣我也有以下幾個疑問。如何在oracle中編寫存儲過程?
我所試圖做的是,
我有EMP_ID,地區,部門,產品,名稱等
我也有EMP_ID emp_update表,列一個Employee表(什麼改變),old_value,new_value和日期。
例如emp_update表的emp_id = 10將有一行,表示該地區在4月30日從亞洲轉爲英國。
同一個emp的另一行表示產品在4月30日從A更改爲B.
因此,同一員工和同一日期的多個條目。
現在在那個特定的日期,我正在運行一個cron作業,它將運行此sp以將僱員表更新爲這些更新。
例如在4月30日,更新僱員設置區域=英國,產品= B,其中emp_id = 10。
我想運行一個僱員的單個更新語句與該日期emp_update表中的所有更新。
所以基本上,
讓所有員工emp_update與今天的更新。 迭代該員工更新,將它們組合在一個更新語句中,然後執行該更新查詢。 爲每位員工重複。
請幫
編輯1: -
CREATE OR REPLACE
PROCEDURE SP_RUN_EMPLOYEE_UPDATES
IS
CURSOR
c_emp
IS
SELECT DISTINCT(employee_id) as employee_id FROM BI_EMPLOYEE_UPDATE WHERE EFFECTIVE_DATE = to_date('30-Apr-2012','dd-mm-yy');
BEGIN
FOR employee in c_emp
LOOP
CURSOR
c_emp_update
IS
SELECT * FROM BI_EMPLOYEE_UPDATE WHERE employee_id = :employee.employee_id AND EFFECTIVE_DATE = to_date('30-Apr-2012','dd-mm-yy');
FOR emp_update in c_emp_update
LOOP
-- dbms_output.put_line(emp_update.column_name);
END LOOP;
END LOOP;
END;
目前這是我迄今
任何方向? – ashishjmeshram 2012-04-23 13:42:32
您是否希望*單個更新語句或您需要*單個更新語句? – 2012-04-23 13:52:47
請參閱Oracle文檔:http://docs.oracle。com/cd/E11882_01/appdev.112/e25519/toc.htm您可以在那裏閱讀,然後查看他們的示例列表。 – tbone 2012-04-23 14:24:32