sql - 在oracle中编写通用过程

标签 sql oracle generics stored-procedures

我想编写一个过程,将两个表的名称重音作为参数,然后比较两个表的数量或行数。 我还想要两列的每个字段。不匹配的行应该是 移至另一个错误表。

任何人都可以给出执行此操作的 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/

相关文章:

sql - 检查文件是否存在?

mysql - ORA-00905 : missing keyword for THEN clause of CASE?

postgreSQL中的SQL访问注释

mysql - Teradata 到 mysql 的转换 - 资格和排名

sql - Zope : standard_error_message: ZSQLMethod not working

oracle - 使用特定表名的Oracle View 列表

java - 使用泛型避免编译错误

java - 根据成员变量或映射函数返回子列表

c# - 将方法包装到函数中

sql - 简单的sql表和数据生成器