我有兩個表2017和2018.兩個表具有相同的列,但值不同。我希望獲得每列的不同值,並且我希望確保2018年的所有獨特列在2017年出現。我在每張表中都有超過100列。我用光標嘗試了下面的查詢。其結果將被存儲在一個名爲「RESULT_MINUS」提前使用光標獲取不同的值
DECLARE
COL VARCHAR2 (200);
OUTRECORD VARCHAR2 (200);
CURSOR COLUMN_NM
IS
SELECT COLUMN_NAME
FROM all_tab_columns
WHERE table_name = 'COMPARE_2018_P1'
CURSOR DIFFERENCE
IS
SELECT OUTRECORD
FROM (SELECT DISTINCT COL
FROM COMPARE_2018_P1
MINUS
SELECT DISTINCT COL
FROM COMPARE_2017_P1);
BEGIN
OPEN COLUMN_NM;
LOOP
FETCH COLUMN_NM INTO COL;
DBMS_OUTPUT.put_line (COL);
OPEN DIFFERENCE;
LOOP
FETCH DIFFERENCE INTO OUTRECORD;
INSERT INTO RESULT_MINUS
VALUES ('B001',
'COMPARE',
'2018',
COL,
OUTRECORD,
'NOT PRESENT IN 2017');
COMMIT;
END LOOP;
CLOSE DIFFERENCE;
END LOOP;
CLOSE COLUMN_NM;
END;
感謝其他表..
(1)用你正在使用的數據庫標記你的問題。 (2)提供樣本數據和期望的輸出。 (3)提出問題。例如,你現在的代碼有什麼問題? –
爲什麼你在不同的年份有不同的表格? – jarlh
我正在使用oracle數據庫 – mano