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

📄 employee_qp.pkb

📁 OReilly Oracle PL SQL Programming第4版源代码
💻 PKB
📖 第 1 页 / 共 3 页
字号:
   END ex_FK_EMP_DEPARTMENT;

   FUNCTION ar_FK_EMP_JOB_cv (
      job_id_in IN EMPLOYEE_TP.JOB_ID_t
      )
      RETURN EMPLOYEE_TP.EMPLOYEE_rc
   IS
      retval EMPLOYEE_TP.EMPLOYEE_rc;
   BEGIN
      OPEN retval FOR
         SELECT
            EMPLOYEE_ID,
            LAST_NAME,
            FIRST_NAME,
            MIDDLE_INITIAL,
            JOB_ID,
            MANAGER_ID,
            HIRE_DATE,
            SALARY,
            COMMISSION,
            DEPARTMENT_ID,
            EMPNO,
            ENAME,
            CREATED_BY,
            CREATED_ON,
            CHANGED_BY,
            CHANGED_ON
           FROM EMPLOYEE
       WHERE
          JOB_ID = ar_FK_EMP_JOB_cv.job_id_in

         ;
      RETURN retval;
   END ar_FK_EMP_JOB_cv;

   FUNCTION in_FK_EMP_JOB_cv (
      job_id_in IN VARCHAR2
      )
      RETURN EMPLOYEE_TP.weak_refcur
   IS
      retval EMPLOYEE_TP.weak_refcur;
   BEGIN
      OPEN retval FOR
         'SELECT
            EMPLOYEE_ID,
            LAST_NAME,
            FIRST_NAME,
            MIDDLE_INITIAL,
            JOB_ID,
            MANAGER_ID,
            HIRE_DATE,
            SALARY,
            COMMISSION,
            DEPARTMENT_ID,
            EMPNO,
            ENAME,
            CREATED_BY,
            CREATED_ON,
            CHANGED_BY,
            CHANGED_ON
           FROM EMPLOYEE
       WHERE
          JOB_ID IN (' || job_id_in || ')
             '
         ;
      RETURN retval;
   END in_FK_EMP_JOB_cv;

   FUNCTION ar_FK_EMP_JOB (
      job_id_in IN EMPLOYEE_TP.JOB_ID_t
      )
      RETURN EMPLOYEE_TP.EMPLOYEE_tc
   IS
      CURSOR allrows_cur
      IS
         SELECT
            EMPLOYEE_ID,
            LAST_NAME,
            FIRST_NAME,
            MIDDLE_INITIAL,
            JOB_ID,
            MANAGER_ID,
            HIRE_DATE,
            SALARY,
            COMMISSION,
            DEPARTMENT_ID,
            EMPNO,
            ENAME,
            CREATED_BY,
            CREATED_ON,
            CHANGED_BY,
            CHANGED_ON
           FROM EMPLOYEE
          WHERE
             JOB_ID = ar_FK_EMP_JOB.job_id_in

         ;
      l_rows PLS_INTEGER;
      retval EMPLOYEE_TP.EMPLOYEE_tc;
   BEGIN
      OPEN allrows_cur;
      FETCH allrows_cur BULK COLLECT INTO retval;
      RETURN retval;
   END ar_FK_EMP_JOB;

   PROCEDURE ar_FK_EMP_JOB (
      job_id_in IN EMPLOYEE_TP.JOB_ID_t,
      employee_id_out OUT EMPLOYEE_TP.EMPLOYEE_ID_cc,
      last_name_out OUT EMPLOYEE_TP.LAST_NAME_cc,
      first_name_out OUT EMPLOYEE_TP.FIRST_NAME_cc,
      middle_initial_out OUT EMPLOYEE_TP.MIDDLE_INITIAL_cc,
      job_id_out OUT EMPLOYEE_TP.JOB_ID_cc,
      manager_id_out OUT EMPLOYEE_TP.MANAGER_ID_cc,
      hire_date_out OUT EMPLOYEE_TP.HIRE_DATE_cc,
      salary_out OUT EMPLOYEE_TP.SALARY_cc,
      commission_out OUT EMPLOYEE_TP.COMMISSION_cc,
      department_id_out OUT EMPLOYEE_TP.DEPARTMENT_ID_cc,
      empno_out OUT EMPLOYEE_TP.EMPNO_cc,
      ename_out OUT EMPLOYEE_TP.ENAME_cc,
      created_by_out OUT EMPLOYEE_TP.CREATED_BY_cc,
      created_on_out OUT EMPLOYEE_TP.CREATED_ON_cc,
      changed_by_out OUT EMPLOYEE_TP.CHANGED_BY_cc,
      changed_on_out OUT EMPLOYEE_TP.CHANGED_ON_cc
      )
   IS
   BEGIN
      SELECT
            EMPLOYEE_ID,
            LAST_NAME,
            FIRST_NAME,
            MIDDLE_INITIAL,
            JOB_ID,
            MANAGER_ID,
            HIRE_DATE,
            SALARY,
            COMMISSION,
            DEPARTMENT_ID,
            EMPNO,
            ENAME,
            CREATED_BY,
            CREATED_ON,
            CHANGED_BY,
            CHANGED_ON
        BULK COLLECT INTO
            employee_id_out,
            last_name_out,
            first_name_out,
            middle_initial_out,
            job_id_out,
            manager_id_out,
            hire_date_out,
            salary_out,
            commission_out,
            department_id_out,
            empno_out,
            ename_out,
            created_by_out,
            created_on_out,
            changed_by_out,
            changed_on_out
        FROM EMPLOYEE
       WHERE
             JOB_ID = ar_FK_EMP_JOB.job_id_in

      ;
   END ar_FK_EMP_JOB;

   -- Number of rows by FK_EMP_JOB
   FUNCTION num_FK_EMP_JOB (
      job_id_in IN EMPLOYEE_TP.JOB_ID_t
      )
      RETURN PLS_INTEGER
   IS
      retval PLS_INTEGER;
   BEGIN
      SELECT COUNT(*)
        INTO retval
        FROM EMPLOYEE
       WHERE
             JOB_ID = job_id_in
      ;
      RETURN retval;
   END num_FK_EMP_JOB;

   FUNCTION ex_FK_EMP_JOB (
      job_id_in IN EMPLOYEE_TP.JOB_ID_t
      )
      RETURN BOOLEAN
   IS
      l_dummy PLS_INTEGER;
   BEGIN
      SELECT 1 INTO l_dummy
        FROM EMPLOYEE
       WHERE
             JOB_ID = job_id_in
      ;
      RETURN TRUE;
   EXCEPTION WHEN NO_DATA_FOUND THEN RETURN FALSE;
             WHEN TOO_MANY_ROWS THEN RETURN TRUE;
   END ex_FK_EMP_JOB;

   FUNCTION ar_FK_EMP_MANAGER_cv (
      manager_id_in IN EMPLOYEE_TP.MANAGER_ID_t
      )
      RETURN EMPLOYEE_TP.EMPLOYEE_rc
   IS
      retval EMPLOYEE_TP.EMPLOYEE_rc;
   BEGIN
      OPEN retval FOR
         SELECT
            EMPLOYEE_ID,
            LAST_NAME,
            FIRST_NAME,
            MIDDLE_INITIAL,
            JOB_ID,
            MANAGER_ID,
            HIRE_DATE,
            SALARY,
            COMMISSION,
            DEPARTMENT_ID,
            EMPNO,
            ENAME,
            CREATED_BY,
            CREATED_ON,
            CHANGED_BY,
            CHANGED_ON
           FROM EMPLOYEE
       WHERE
          MANAGER_ID = ar_FK_EMP_MANAGER_cv.manager_id_in

         ;
      RETURN retval;
   END ar_FK_EMP_MANAGER_cv;

   FUNCTION in_FK_EMP_MANAGER_cv (
      manager_id_in IN VARCHAR2
      )
      RETURN EMPLOYEE_TP.weak_refcur
   IS
      retval EMPLOYEE_TP.weak_refcur;
   BEGIN
      OPEN retval FOR
         'SELECT
            EMPLOYEE_ID,
            LAST_NAME,
            FIRST_NAME,
            MIDDLE_INITIAL,
            JOB_ID,
            MANAGER_ID,
            HIRE_DATE,
            SALARY,
            COMMISSION,
            DEPARTMENT_ID,
            EMPNO,
            ENAME,
            CREATED_BY,
            CREATED_ON,
            CHANGED_BY,
            CHANGED_ON
           FROM EMPLOYEE
       WHERE
          MANAGER_ID IN (' || manager_id_in || ')
             '
         ;
      RETURN retval;
   END in_FK_EMP_MANAGER_cv;

   FUNCTION ar_FK_EMP_MANAGER (
      manager_id_in IN EMPLOYEE_TP.MANAGER_ID_t
      )
      RETURN EMPLOYEE_TP.EMPLOYEE_tc
   IS
      CURSOR allrows_cur
      IS
         SELECT
            EMPLOYEE_ID,
            LAST_NAME,
            FIRST_NAME,
            MIDDLE_INITIAL,
            JOB_ID,
            MANAGER_ID,
            HIRE_DATE,
            SALARY,
            COMMISSION,
            DEPARTMENT_ID,
            EMPNO,
            ENAME,
            CREATED_BY,
            CREATED_ON,
            CHANGED_BY,
            CHANGED_ON
           FROM EMPLOYEE
          WHERE
             MANAGER_ID = ar_FK_EMP_MANAGER.manager_id_in

         ;
      l_rows PLS_INTEGER;
      retval EMPLOYEE_TP.EMPLOYEE_tc;
   BEGIN
      OPEN allrows_cur;
      FETCH allrows_cur BULK COLLECT INTO retval;
      RETURN retval;
   END ar_FK_EMP_MANAGER;

   PROCEDURE ar_FK_EMP_MANAGER (
      manager_id_in IN EMPLOYEE_TP.MANAGER_ID_t,
      employee_id_out OUT EMPLOYEE_TP.EMPLOYEE_ID_cc,
      last_name_out OUT EMPLOYEE_TP.LAST_NAME_cc,
      first_name_out OUT EMPLOYEE_TP.FIRST_NAME_cc,
      middle_initial_out OUT EMPLOYEE_TP.MIDDLE_INITIAL_cc,
      job_id_out OUT EMPLOYEE_TP.JOB_ID_cc,
      manager_id_out OUT EMPLOYEE_TP.MANAGER_ID_cc,
      hire_date_out OUT EMPLOYEE_TP.HIRE_DATE_cc,
      salary_out OUT EMPLOYEE_TP.SALARY_cc,
      commission_out OUT EMPLOYEE_TP.COMMISSION_cc,
      department_id_out OUT EMPLOYEE_TP.DEPARTMENT_ID_cc,
      empno_out OUT EMPLOYEE_TP.EMPNO_cc,
      ename_out OUT EMPLOYEE_TP.ENAME_cc,
      created_by_out OUT EMPLOYEE_TP.CREATED_BY_cc,
      created_on_out OUT EMPLOYEE_TP.CREATED_ON_cc,
      changed_by_out OUT EMPLOYEE_TP.CHANGED_BY_cc,
      changed_on_out OUT EMPLOYEE_TP.CHANGED_ON_cc
      )
   IS
   BEGIN
      SELECT
            EMPLOYEE_ID,
            LAST_NAME,
            FIRST_NAME,
            MIDDLE_INITIAL,
            JOB_ID,
            MANAGER_ID,
            HIRE_DATE,
            SALARY,
            COMMISSION,
            DEPARTMENT_ID,
            EMPNO,
            ENAME,
            CREATED_BY,
            CREATED_ON,
            CHANGED_BY,
            CHANGED_ON
        BULK COLLECT INTO
            employee_id_out,
            last_name_out,
            first_name_out,
            middle_initial_out,
            job_id_out,
            manager_id_out,
            hire_date_out,
            salary_out,
            commission_out,
            department_id_out,
            empno_out,
            ename_out,
            created_by_out,
            created_on_out,
            changed_by_out,
            changed_on_out
        FROM EMPLOYEE
       WHERE
             MANAGER_ID = ar_FK_EMP_MANAGER.manager_id_in

      ;
   END ar_FK_EMP_MANAGER;

   -- Number of rows by FK_EMP_MANAGER
   FUNCTION num_FK_EMP_MANAGER (
      manager_id_in IN EMPLOYEE_TP.MANAGER_ID_t
      )
      RETURN PLS_INTEGER
   IS
      retval PLS_INTEGER;
   BEGIN
      SELECT COUNT(*)
        INTO retval
        FROM EMPLOYEE
       WHERE
             MANAGER_ID = manager_id_in
      ;
      RETURN retval;
   END num_FK_EMP_MANAGER;

   FUNCTION ex_FK_EMP_MANAGER (
      manager_id_in IN EMPLOYEE_TP.MANAGER_ID_t
      )
      RETURN BOOLEAN
   IS
      l_dummy PLS_INTEGER;
   BEGIN
      SELECT 1 INTO l_dummy
        FROM EMPLOYEE
       WHERE
             MANAGER_ID = manager_id_in
      ;
      RETURN TRUE;
   EXCEPTION WHEN NO_DATA_FOUND THEN RETURN FALSE;
             WHEN TOO_MANY_ROWS THEN RETURN TRUE;
   END ex_FK_EMP_MANAGER;

    -- Number of rows in table
   FUNCTION tabcount (
      where_clause_in IN VARCHAR2 := NULL)
      RETURN PLS_INTEGER
   IS
      retval PLS_INTEGER;
   BEGIN
      IF where_clause_in IS NULL
      THEN
         SELECT COUNT(*) INTO retval FROM EMPLOYEE;
      ELSE
         EXECUTE IMMEDIATE
            'SELECT COUNT(*) FROM EMPLOYEE
              WHERE ' || where_clause_in
            INTO retval;
      END IF;
      RETURN retval;
   END tabcount;

   -- Number of rows by primary key
   FUNCTION pkycount (
      employee_id_in IN EMPLOYEE_TP.EMPLOYEE_ID_t
      )
   RETURN PLS_INTEGER
   IS
      retval PLS_INTEGER;
   BEGIN
      SELECT COUNT(*)
        INTO retval
        FROM EMPLOYEE
       WHERE
             EMPLOYEE_ID = employee_id_in
      ;
      RETURN retval;
   END pkycount;

   -- Number of rows in table
   FUNCTION ex_EMPLOYEE (
      where_clause_in IN VARCHAR2 := NULL)
      RETURN BOOLEAN
   IS
      l_dummy PLS_INTEGER;
   BEGIN
      IF where_clause_in IS NULL
      THEN
         SELECT 1 INTO l_dummy FROM EMPLOYEE;
      ELSE
         EXECUTE IMMEDIATE
            'SELECT 1 FROM EMPLOYEE
              WHERE ' || where_clause_in
            INTO l_dummy;
      END IF;
      RETURN TRUE;
   EXCEPTION WHEN NO_DATA_FOUND THEN RETURN FALSE;
             WHEN TOO_MANY_ROWS THEN RETURN TRUE;
   END ex_EMPLOYEE;

    -- Number of rows by primary key
   FUNCTION ex_pky (
      employee_id_in IN EMPLOYEE_TP.EMPLOYEE_ID_t
      )
   RETURN BOOLEAN
   IS
      l_dummy PLS_INTEGER;
   BEGIN
      SELECT 1
        INTO l_dummy
        FROM EMPLOYEE
       WHERE
             EMPLOYEE_ID = employee_id_in
      ;
      RETURN TRUE;
   EXCEPTION WHEN NO_DATA_FOUND THEN RETURN FALSE;
             WHEN TOO_MANY_ROWS THEN RETURN TRUE;
   END ex_pky;
BEGIN
   NULL;
END EMPLOYEE_QP;
/

⌨️ 快捷键说明

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