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

📄 plgcgml.sps

📁 Oracle PL/SQL procedure generator (second generator type)
💻 SPS
字号:
CREATE OR REPLACE PACKAGE PLGcgml &authidopen AUTHID CURRENT_USER &authidclose
IS
/*----------------------------------------------------------------
||                  PL/Generator from Quest Software
||----------------------------------------------------------------
||    File: PLGgen.sps
||  Author: Steven Feuerstein
||
|| This is a part of the PL/Generator Code library.
|| Copyright (C) 1998-1999 Quest Software, Inc.
|| All rights reserved.
||
|| For more information, call Quest Software at 1-800-REVEAL4
|| or check out our Web page: www.Quest Software.com
||
------------------ Modification History --------------------------
|| Date     By     Description
||	-------- ------ -----------------------------------------------
|| 1/4/99   SEF    Remove use of colrecdmlval
|| 9/98     SEF    Add support for code analysis (analyze_plsql)
|| 06/24/97 SEF    Enhance for foreign key name resolution.
|| 04/97    SEF    Created
-----------------------------------------------------------------*/

   test_driver CONSTANT CHAR(4) := 'TEST';
   
   -- FUNCTION is_cgml_command (str IN VARCHAR2) RETURN BOOLEAN;
  
/* 
   Pre-defined arrays for core CGML language: 
   Come up with some standards: <array> generally has a tag
   called <array> and also CODE for numeric code? As in:
   
   TYPE day_rt IS RECORD (
      day VARCHAR2(30),
      abbrev VARCHAR2(3),
      code PLS_INTEGER);
      
   TYPE day_tt IS TABLE OF day_rt INDEX BY BINARY_INTEGER;
   
   day day_tt;
*/

   /* Date information: days of week, day numbers, month names, etc. */
   TYPE day_rt IS RECORD (
      day VARCHAR2(30),
      initcap VARCHAR2(30),
      abbrev VARCHAR2(3),
      number PLS_INTEGER);
      
   TYPE day_tt IS TABLE OF day_rt INDEX BY BINARY_INTEGER;
   
   day day_tt;

   TYPE month_rt IS RECORD (
      month VARCHAR2(30),
      initcap VARCHAR2(30),
      abbrev VARCHAR2(3),
      number PLS_INTEGER);
      
   TYPE month_tt IS TABLE OF month_rt INDEX BY BINARY_INTEGER;
   
   month month_tt;
   
   /* DBMS_JOB strings for various frequencies */
   
   /* Trigger events and DML events */
   
   /* SQL statement types */
   
   /* Letters of alphabet with ASCII codes */
   
   /* SQL datatypes */
   
   /* PLSQL datatypes */
   
   /* Users in instance */
   
   /* Oracle versions */
     
   /* For generating documentation on array tags */ 
  
   TYPE array_tag_rt IS RECORD (
     tagname PLGadmin.identifier,
     first_array PLGadmin.identifier,
     array_list PLGadmin.dbmaxvc2,
     desc_list PLGadmin.dbmaxvc2
     );
   
   TYPE array_tag_t IS TABLE OF array_tag_rt INDEX BY BINARY_INTEGER;
   array_tag array_tag_t;
     
---------------- Modify Driver Information   

   PROCEDURE set_based_on (drvr IN VARCHAR2);
   FUNCTION based_on RETURN VARCHAR2;
   
   PROCEDURE clear (
      drvr IN VARCHAR2 := NULL,
      sch IN VARCHAR2 := NULL,
      delarray IN BOOLEAN := FALSE
      );
      
   /* Define an array */
   PROCEDURE defarray (
      pkgname IN VARCHAR2,
      arrayname IN VARCHAR2,
      sch IN VARCHAR2 := NULL,
      drvr IN VARCHAR2 := NULL
      );
      
---------------- Generate Text from cgml    

   /* Load contents of string into driver source table. */
   PROCEDURE loadString (
      string IN VARCHAR2,
      delim IN VARCHAR2 := NULL,
      drvr IN VARCHAR2 := NULL,
      cleartable IN BOOLEAN := TRUE 
      );

   /* Read/write cgml text with files */
   PROCEDURE genFile (
      obj IN VARCHAR2,
      file IN VARCHAR2,
      show IN BOOLEAN := FALSE,
      cleardriver IN BOOLEAN := TRUE,
      sch IN VARCHAR2 := NULL,
      drvr IN VARCHAR2 := NULL,
      delarray IN BOOLEAN := TRUE,
      single_pass IN BOOLEAN := FALSE
      );

   /* No database object required. */
   PROCEDURE genFile (
      file IN VARCHAR2,
      show IN BOOLEAN := FALSE,
      cleardriver IN BOOLEAN := TRUE,
      sch IN VARCHAR2 := NULL,
      drvr IN VARCHAR2 := NULL,
      delarray IN BOOLEAN := TRUE,
      single_pass IN BOOLEAN := FALSE
      );

   PROCEDURE genFile (
      obj IN VARCHAR2,
      parms IN PLGadmin.vc2000_tabtype,
      file IN VARCHAR2,
      show IN BOOLEAN := FALSE,
      cleardriver IN BOOLEAN := TRUE,
      sch IN VARCHAR2 := NULL,
      drvr IN VARCHAR2 := NULL,
      delarray IN BOOLEAN := TRUE,
      single_pass IN BOOLEAN := FALSE
      );
      
   /* Read/write cgml text with files string and list. */
   
   /* With genstring, still need to provide a STOREIN command
      to initiate the write to a named list. */
      
   PROCEDURE genString (
      obj IN VARCHAR2,
      string IN VARCHAR2,
      show IN BOOLEAN := FALSE,
      cleardriver IN BOOLEAN := TRUE,
      sch IN VARCHAR2 := NULL,
      delim IN VARCHAR2 := NULL,
      drvr IN VARCHAR2 := NULL,
      delarray IN BOOLEAN := TRUE,
      single_pass IN BOOLEAN := FALSE
      );

   /* No database object required. */
   PROCEDURE genString (
      string IN VARCHAR2,
      show IN BOOLEAN := FALSE,
      cleardriver IN BOOLEAN := TRUE,
      sch IN VARCHAR2 := NULL,
      delim IN VARCHAR2 := NULL,
      drvr IN VARCHAR2 := NULL,
      delarray IN BOOLEAN := TRUE,
      single_pass IN BOOLEAN := FALSE
      );

   PROCEDURE genString (
      obj IN VARCHAR2,
      string1_inout IN OUT VARCHAR2,
      string2_inout IN OUT VARCHAR2,
      string3_inout IN OUT VARCHAR2,
      string4_inout IN OUT VARCHAR2,
      string5_inout IN OUT VARCHAR2,
      show IN BOOLEAN := FALSE,
      sch IN VARCHAR2 := NULL,
      delim IN VARCHAR2 := NULL,
      drvr IN VARCHAR2 := NULL,
      delarray IN BOOLEAN := TRUE,
      single_pass IN BOOLEAN := FALSE,
      objrequired IN BOOLEAN := TRUE,
      maxlen IN PLS_INTEGER := NULL 
      );

   PROCEDURE file2strings (
      dir IN VARCHAR2,
      file IN VARCHAR2,
      string1_inout IN OUT VARCHAR2,
      string2_inout IN OUT VARCHAR2,
      string3_inout IN OUT VARCHAR2,
      string4_inout IN OUT VARCHAR2,
      string5_inout IN OUT VARCHAR2 
      );
      
---------------- Generate cgml Scripts    

   /* Generate cgml text to then be used in genString and genFile. */
   
   PROCEDURE define_array (
      pkgname IN VARCHAR2,
      arrayname IN VARCHAR2,
      fieldlist IN VARCHAR2,
      coldelim IN VARCHAR2 := ',',
      typedelim IN VARCHAR2 := ' ',
      sch IN VARCHAR2 := NULL,
      drvr IN VARCHAR2 := NULL
      );

   PROCEDURE array_from_query (
      pkgname IN VARCHAR2,
      arrayname IN VARCHAR2,
      query IN VARCHAR2,
      fieldlist IN VARCHAR2 := NULL, /* Format 'COL TYPE,COL TYPE' */
      coldelim IN VARCHAR2 := ',',
      typedelim IN VARCHAR2 := ' ',
      sch IN VARCHAR2 := NULL,
      drvr IN VARCHAR2 := NULL,
      def_array_in_oir IN BOOLEAN := TRUE
      );

   c_include_col CONSTANT CHAR(1) := '+';
   c_exclude_col CONSTANT CHAR(1) := '-';

   PROCEDURE array_from_table (
      pkgname IN VARCHAR2,
      arrayname IN VARCHAR2,
      tab IN VARCHAR2,
      uselist IN VARCHAR2 := NULL, 
      ignorelist IN VARCHAR2 := NULL,
      whr IN VARCHAR2 := NULL,
      delim IN VARCHAR2 := ',',
      sch IN VARCHAR2 := NULL,
      drvr IN VARCHAR2 := NULL,
      def_array_in_oir IN BOOLEAN := TRUE
      );
      
   PROCEDURE define_table_array (
      tab IN VARCHAR2,
      whr IN VARCHAR2 := NULL,
      tabsch IN VARCHAR2 := NULL,
      pkgsch IN VARCHAR2 := NULL,
      drvr IN VARCHAR2 := NULL
      );
      
   PROCEDURE define_view_array (
      viewname IN VARCHAR2,
      viewstring IN VARCHAR2,
      tabsch IN VARCHAR2 := NULL,
      pkgsch IN VARCHAR2 := NULL,
      drvr IN VARCHAR2 := NULL
      );
      
   /* Set up global elements of the driver language. */
   PROCEDURE initialize;

   /* Initialize all standard arrays. This is run in the init section
      of the package.
   
   PROCEDURE array_initialization;
   
   /* Fill the array tag arrays */
   PROCEDURE array_tag_initialize (drv IN VARCHAR2);
   
END PLGcgml;
/

⌨️ 快捷键说明

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