⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 10g_compare_old.sql

📁 OReilly Oracle PL SQL Programming第4版源代码
💻 SQL
字号:
CREATE OR REPLACE PACKAGE emp_coll_pkg
IS
   TYPE employee_tt IS TABLE OF employee%ROWTYPE;

   FUNCTION equal (coll1_in IN employee_tt, coll2_in IN employee_tt)
      RETURN BOOLEAN;
END emp_coll_pkg;
/

CREATE OR REPLACE PACKAGE BODY emp_coll_pkg
IS
   FUNCTION equal (coll1_in IN employee_tt, coll2_in IN employee_tt)
      RETURN BOOLEAN
   IS
      l_count1   PLS_INTEGER := coll1_in.COUNT;
      l_count2   PLS_INTEGER := coll2_in.COUNT;
      l_row      PLS_INTEGER := coll1_in.FIRST;
      retval     BOOLEAN;

      FUNCTION row_equal (
         row1_in IN employee%ROWTYPE
       , row2_in IN employee%ROWTYPE
      )
         RETURN BOOLEAN
      IS
         retval   BOOLEAN;
      BEGIN
         retval :=
                 row1_in.employee_id = row2_in.employee_id
             AND row1_in.last_name = row2_in.last_name
             AND row1_in.first_name = row2_in.first_name
             AND row1_in.middle_initial = row2_in.middle_initial
             AND row1_in.job_id = row2_in.job_id
             AND row1_in.manager_id = row2_in.manager_id
             AND row1_in.hire_date = row2_in.hire_date
             AND row1_in.salary = row2_in.salary
             AND row1_in.commission = row2_in.commission
             AND row1_in.department_id = row2_in.department_id
             AND row1_in.empno = row2_in.empno
             AND row1_in.ename = row2_in.ename
             AND row1_in.created_by = row2_in.created_by
             AND row1_in.created_on = row2_in.created_on
             AND row1_in.changed_by = row2_in.changed_by
             AND row1_in.changed_on = row2_in.changed_on;
         RETURN retval;
      END row_equal;
   BEGIN
      retval := l_count1 = l_count2;

      IF retval
      THEN
         LOOP
            EXIT WHEN l_row IS NULL OR NOT retval;
            retval := row_equal (coll1_in (l_row), coll2_in (l_row));
            l_row := coll1_in.NEXT (l_row);
         END LOOP;
      END IF;

      RETURN retval;
   END;
END emp_coll_pkg;
/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -