我有两个表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