我想编写一个过程,将两个表的名称重音作为参数,然后比较两个表的数量或行数。 我还想要两列的每个字段。不匹配的行应该是 移至另一个错误表。
任何人都可以给出执行此操作的 PL/SQL 过程吗? 我想在 Oracle 9 中实现这一点
最佳答案
Pablos 的例子行不通,但这个想法是正确的。
像这样就可以了。
create or replace PROCEDURE COMPARE_ROW_COUNT(T1 IN VARCHAR2, T2 IN VARCHAR2) AS
v_r1 number;
v_r2 number;
v_sql1 varchar2(200);
v_sql2 varchar2(200);
BEGIN
v_sql1 := 'select count(1) from ' || T1;
v_sql2 := 'select count(1) from ' || T2;
EXECUTE IMMEDIATE v_sql1 into v_r1;
EXECUTE IMMEDIATE v_sql2 into v_r2;
dbms_output.put_line(T1 || ' count = ' || v_r1 || ', ' || T2 || ' count = ' || v_r2);
END;
关于sql - 在oracle中编写通用过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1880219/