Plsql Pl/sqldbms输出
我对pl/sql非常陌生,无法运行此查询。Plsql Pl/sqldbms输出,plsql,oracle11g,dbms-output,Plsql,Oracle11g,Dbms Output,我对pl/sql非常陌生,无法运行此查询。 我希望它找出两个表之间的差异,然后输出这些事务的ID。 任何帮助都将不胜感激 SET SERVEROUTPUT ON DECLARE diff_id varchar2(50); diff_id2 varchar2(50); BEGIN FOR dcount IN SELECT O.transid , ABB.transid into diff_id, diff_id2 FROM (SELECT * FROM O.transactio
我希望它找出两个表之间的差异,然后输出这些事务的ID。
任何帮助都将不胜感激
SET SERVEROUTPUT ON
DECLARE
diff_id varchar2(50);
diff_id2 varchar2(50);
BEGIN
FOR dcount IN
SELECT
O.transid ,
ABB.transid
into diff_id, diff_id2
FROM
(SELECT *
FROM O.transactions
AND abdate >= trunc(sysdate -3)
) O
FULL OUTER JOIN
(SELECT *
FROM ABB.transactions
AND abdate >= trunc(sysdate -3)
) ABB
ON O.transid = ABB.transid
LOOP
DBMS_OUTPUT.put_line (employee_rec.diff_id);
DBMS_OUTPUT.put_line (employee_rec.diff_id2);
END LOOP;
END;
我想要的输出是不在这两个文件中的事务id
桌子。Ie 375和480
啊,是的,375和480。832怎么样
无论如何:您不需要PL/SQL来实现这一点。SET操作员有什么好处吗?例如,如果您想从第一个表中获取第二个表中不包含的ID,您可以使用
select id from first_table
minus
select id from second_table;
双向的
select 'in 1st, not in 2nd' what, id
from (select id from first_table
minus
select id from second_table)
union all
select 'in 2nd, not in 1st', id
from (select id from second_table
minus
select id from first_table);
如有必要,应用附加条件(例如ABDATE列)。请添加两个表的一些示例数据以及您所谈论的差异类型。同时根据样本数据添加期望的结果。请参阅,每个表中有2列,Id和日期,我希望的输出是不在这两个表中的事务Id。Ie 375和480。阅读我提供的文章,特别是第2部分。提供与背景相关的数据?尝试?并且它不是一个查询。您的PL/SQL在查询周围缺少括号。另外,单独运行查询(从
SELECT
开始,直到ABB.transid
)并检查结果。