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

📄 plgdoir.spb

📁 Oracle PL/SQL procedure generator (second generator type)
💻 SPB
📖 第 1 页 / 共 5 页
字号:
         c_pkydesc,
         unique_index,
         1,
         sch,
         ver => TRUE,
         aname => indexfunc,
         atype => func_datatype
      );
   END;

   PROCEDURE setlookup
   /* designed for [raise]isnull */
    (
      drv IN VARCHAR2,
      tab IN VARCHAR2,
      lutype IN VARCHAR2,

      /* c_raise */
      lucontext IN VARCHAR2,

      /* progname - ins or c_global */
      luaction IN VARCHAR2,

      /* ISNULL */
      numval IN INTEGER,

      /* errnum */
      strval IN VARCHAR2,

      /* errmsg */
      sch IN VARCHAR2 := NULL
      )
   IS
   BEGIN
      ins (
         drv,
         sch,
         tab,
         lutype,
         NVL (lucontext, c_global),
         luaction,
         c_global,
         numval,
         strval
      );
   END;

   PROCEDURE getlookup
   /* designed for [raise]isnull */
    (
      drv IN VARCHAR2,
      tab IN VARCHAR2,
      lutype IN VARCHAR2,

      /* c_raise */
      lucontext IN VARCHAR2,

      /* progname - ins or c_global */
      luaction IN VARCHAR2,

      /* ISNULL */
      numval IN OUT INTEGER,

      /* errnum */
      strval IN OUT VARCHAR2,

      /* errmsg */
      sch IN VARCHAR2 := NULL
      )
   IS
   BEGIN
      get_info_and_seq (
         drv,
         tab,
         lutype,
         lucontext,
         luaction,
         c_global,
         strval,
         numval,
         sch
      );
   END;

   PROCEDURE setactive (
      drv IN VARCHAR2,
      tab IN VARCHAR2,
      infotype_in IN PLG_doir.infotype%TYPE,
      sch IN VARCHAR2 := NULL
      )
   IS
   BEGIN
      multitabset (
         drv,
         tab,
         UPPER (infotype_in),
         c_true,
         1,
         sch,
         convert_val => FALSE
      );
   END;

   PROCEDURE setinactive (
      drv IN VARCHAR2,
      tab IN VARCHAR2,
      infotype_in IN PLG_doir.infotype%TYPE,
      sch IN VARCHAR2 := NULL
      )
   IS
   BEGIN
      multitabset (
         drv,
         tab,
         UPPER (infotype_in),
         c_false,
         1,
         sch,
         convert_val => FALSE
      );
   END;

   PROCEDURE setpkycol (
      drv IN VARCHAR2,
      tab IN VARCHAR2,
      col IN VARCHAR2,
      pos IN INTEGER := 1,
      sch IN VARCHAR2 := NULL
      )
   IS
   BEGIN
      multitabset (drv, tab, c_pkycol, col, pos, sch, TRUE);
   END;


   /* Primary key generation */
   PROCEDURE setseqname (
      drv IN VARCHAR2,
      tab IN VARCHAR2,
      seq IN VARCHAR2,
      genonly IN BOOLEAN := TRUE,
      sch IN VARCHAR2 := NULL
      )
   IS
   BEGIN
      multitabset (
         drv,
         tab,
         c_sequence,
         seq,
         1,
         sch,
         TRUE,
         remove_conflicts => c_pkygenfunc || ',' || c_pkygenproc
      );

      IF genonly
      THEN
         setactive (drv, tab, c_genpkyonly, sch);
      ELSE
         setinactive (drv, tab, c_genpkyonly, sch);
      END IF;
   END;

   PROCEDURE setpkyproc (
      drv IN VARCHAR2,
      tab IN VARCHAR2,
      proc IN VARCHAR2,
      genonly IN BOOLEAN := TRUE,
      sch IN VARCHAR2 := NULL
      )
   IS
      v_proc    PLGadmin.dbmaxvc2 := RTRIM (proc, ';') || ';';
   BEGIN
      multitabset (
         drv,
         tab,
         c_pkygenproc,
         v_proc,
         1,
         sch,
         FALSE,
         convert_val => FALSE,
         remove_conflicts => c_sequence || ',' || c_pkygenfunc
      );

      IF genonly
      THEN
         setactive (drv, tab, c_genpkyonly, sch);
      ELSE
         setinactive (drv, tab, c_genpkyonly, sch);
      END IF;
   END;

   PROCEDURE setpkyfunc (
      drv IN VARCHAR2,
      tab IN VARCHAR2,
      func IN VARCHAR2,
      genonly IN BOOLEAN := TRUE,
      sch IN VARCHAR2 := NULL
      )
   IS
      v_func    PLGadmin.dbmaxvc2 := RTRIM (func, ';');
   BEGIN
      multitabset (
         drv,
         tab,
         c_pkygenfunc,
         v_func,
         1,
         sch,
         FALSE,
         convert_val => FALSE,
         remove_conflicts => c_sequence || ',' || c_pkygenproc
      );

      IF genonly
      THEN
         setactive (drv, tab, c_genpkyonly, sch);
      ELSE
         setinactive (drv, tab, c_genpkyonly, sch);
      END IF;
   END;

   PROCEDURE nogenpky (
      drv IN VARCHAR2,
      tab IN VARCHAR2,
      sch IN VARCHAR2 := NULL
      )
   IS
   BEGIN
      multitabset (
         drv,
         tab,
         NULL,
         NULL,
         1,
         sch,
         FALSE,
         remove_conflicts => c_sequence ||
         ',' ||
         c_pkygenproc ||
         ',' ||
         c_pkygenfunc,
         remove_only => TRUE
      );
      setinactive (drv, tab, c_genpkyonly, sch);
   END;


   /* Automatic Load Options */
   PROCEDURE setloadnone (
      drv IN VARCHAR2,
      tab IN VARCHAR2,
      sch IN VARCHAR2 := NULL
      )
   IS
   BEGIN
      multitabset (
         drv,
         tab,
         c_preload,
         c_loadnone,
         1,
         sch,
         remove_conflicts => c_loadall || ',' || c_loadincr
      );
   END;

   PROCEDURE setloadall (
      drv IN VARCHAR2,
      tab IN VARCHAR2,
      sch IN VARCHAR2 := NULL
      )
   IS
   BEGIN
      multitabset (
         drv,
         tab,
         c_preload,
         c_loadall,
         1,
         ver => TRUE,
         sch => sch,
         remove_conflicts => c_loadnone || ',' || c_loadincr
      );
   END;

   PROCEDURE setloadincr (
      drv IN VARCHAR2,
      tab IN VARCHAR2,
      sch IN VARCHAR2 := NULL
      )
   IS
   BEGIN
      multitabset (
         drv,
         tab,
         c_preload,
         c_loadincr,
         1,
         ver => TRUE,
         sch => sch,
         remove_conflicts => c_loadall || ',' || c_loadnone
      );
   END;


   /* Return Type options */
   PROCEDURE setcurvar (
      drv IN VARCHAR2,
      tab IN VARCHAR2,
      sch IN VARCHAR2 := NULL
      )
   IS
   BEGIN
      setactive (drv, tab, c_usecurvar, sch);
   END;

   PROCEDURE nosetcurvar (
      drv IN VARCHAR2,
      tab IN VARCHAR2,
      sch IN VARCHAR2 := NULL
      )
   IS
   BEGIN
      setinactive (drv, tab, c_usecurvar, sch);
   END;

   FUNCTION usecurvar (
      drv IN VARCHAR2,
      tab IN VARCHAR2,
      sch IN VARCHAR2 := NULL
      )
      RETURN BOOLEAN
   IS
   BEGIN
      RETURN isactive (drv, tab, c_usecurvar, sch => sch);
   END;

   /* 2000.2.5 Use Static SQL */
   PROCEDURE setstaticSQL (
      drv IN VARCHAR2,
      tab IN VARCHAR2,
      sch IN VARCHAR2 := NULL
      )
   IS
   BEGIN
      setactive (drv, tab, c_usestaticSQL, sch);
   END;

   PROCEDURE nosetstaticSQL (
      drv IN VARCHAR2,
      tab IN VARCHAR2,
      sch IN VARCHAR2 := NULL
      )
   IS
   BEGIN
      setinactive (drv, tab, c_usestaticSQL, sch);
   END;

   FUNCTION usestaticSQL (
      drv IN VARCHAR2,
      tab IN VARCHAR2,
      sch IN VARCHAR2 := NULL
      )
      RETURN BOOLEAN
   IS
   BEGIN
      RETURN isactive (drv, tab, c_usestaticSQL, sch => sch);
   END;

   /* Return Type options */
   PROCEDURE setrestrictref (
      drv IN VARCHAR2,
      tab IN VARCHAR2,
      sch IN VARCHAR2 := NULL
      )
   IS
   BEGIN
      setactive (drv, tab, c_restrictref, sch);
   END;

   PROCEDURE nosetrestrictref (
      drv IN VARCHAR2,
      tab IN VARCHAR2,
      sch IN VARCHAR2 := NULL
      )
   IS
   BEGIN
      setinactive (drv, tab, c_restrictref, sch);
   END;

   FUNCTION userestrictref (
      drv IN VARCHAR2,
      tab IN VARCHAR2,
      sch IN VARCHAR2 := NULL
      )
      RETURN BOOLEAN
   IS
   BEGIN
      RETURN isactive (drv, tab, c_restrictref, sch => sch);
   END;


   /* Stand-alone programs option */
   PROCEDURE setsaprogs (
      drv IN VARCHAR2,
      tab IN VARCHAR2,
      sch IN VARCHAR2 := NULL
      )
   IS
   BEGIN
      setactive (drv, tab, c_usesaprogs, sch);
   END;

   PROCEDURE nosetsaprogs (
      drv IN VARCHAR2,
      tab IN VARCHAR2,
      sch IN VARCHAR2 := NULL
      )
   IS
   BEGIN
      setinactive (drv, tab, c_usesaprogs, sch);
   END;

   FUNCTION usesaprogs (
      drv IN VARCHAR2,
      tab IN VARCHAR2,
      sch IN VARCHAR2 := NULL
      )
      RETURN BOOLEAN
   IS
   BEGIN
      RETURN isactive (drv, tab, c_usesaprogs, sch => sch);
   END;

   /* Allow primary key updates */
   PROCEDURE setupdpky
      (drv IN VARCHAR2,
       tab IN VARCHAR2,
       sch IN VARCHAR2 := NULL)
   IS
   BEGIN
      setactive (drv, tab, c_updpky, sch);
   END;

   PROCEDURE nosetupdpky
      (drv IN VARCHAR2,
       tab IN VARCHAR2,
       sch IN VARCHAR2 := NULL)
   IS
   BEGIN
      setinactive (drv, tab, c_updpky, sch);
   END;

   FUNCTION updpky
      (drv IN VARCHAR2,
       tab IN VARCHAR2,
       sch IN VARCHAR2 := NULL)
      RETURN BOOLEAN
   IS
   BEGIN
      RETURN isactive (drv, tab, c_updpky, sch => sch);
   END;

   /* Count rows functions option */
   PROCEDURE setcountrows (
      drv IN VARCHAR2,
      tab IN VARCHAR2,
      sch IN VARCHAR2 := NULL
      )
   IS
   BEGIN
      setactive (drv, tab, c_usecountrows, sch);
   END;

   PROCEDURE nosetcountrows (
      drv IN VARCHAR2,
      tab IN VARCHAR2,
      sch IN VARCHAR2 := NULL
      )
   IS
   BEGIN
      setinactive (drv, tab, c_usecountrows, sch);
   END;

   FUNCTION usecountrows (
      drv IN VARCHAR2,
      tab IN VARCHAR2,
      sch IN VARCHAR2 := NULL
      )
      RETURN BOOLEAN
   IS
   BEGIN
      RETURN isactive (drv, tab, c_usecountrows, sch => sch);
   END;


   /* Error Handling Approach */
   FUNCTION packed_excinfo (
      exctype PLGadmin.identifier,
      raisemech PLGadmin.dbmaxvc2,
      handlemech PLGadmin.dbmaxvc2,
      setcontext boolean,
      successval VARCHAR2,
      failureval VARCHAR2,
      failuremsg VARCHAR2
      )
      RETURN VARCHAR2
   IS
      retval   PLGadmin.dbmaxvc2;
   BEGIN
      retval :=
         exctype ||
         c_delim ||
         raisemech ||
         c_delim ||
         handlemech ||

⌨️ 快捷键说明

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