0
朋友遊標FOR循環
我寫,做以下
1>插入一個臨時表接收到主表 2中的所有數據。一旦我們在主表中的數據的過程 - 多-1 量 - 將記錄表TEMP2
爲實現上述任務
我的程序看起來像
CREATE OR REPLACE PROCEDURE MyProcesure(USER IN VARCHAR2,
VO_ERROR_CODE OUT NUMBER,
VO_ERROR_DESC OUT nocopy VARCHAR2) IS
v_data VARCHAR2(2000);
BEGIN
VO_ERROR_CODE := 0;
VO_ERROR_DESC := 'Success';
-- Insert all the data received by a temp table into the main table
INSERT INTO MAIN_TABLE (
COLUMN1,
COLUMN2,
COLUMN3,
COLUMN4)
SELECT M,COL1,
M.COL2,
M.COL3,
M.COL4
FROM TEMP M
WHERE M.A = VARIABLE1 ;
-- Once we have the data in the main table
- Multiple the amount by -1
- Insert the records to TEMP2 Table
FOR v_data in
(SELECT COL1, COL2, COL3, COl4 FROM MAIN TABLE)
LOOP
v_data.COL2 := v_data.COL2 * -1 ;
INSERT INTO TEMP2
( COL1,
COL2,
COL3,
COL4
)
SELECT SELECT M.COL1, M.COL2, M.COL3, M.COl4 FROM MAIN TABLE;
GROUP BY M.COL1;
END;
我已經使用了Oracle CURSOR FOR LOOP,請讓我知道這是否完美,或者我也可以使用顯式遊標。 謝謝