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

📄 plgte.spb

📁 Oracle PL/SQL procedure generator (second generator type)
💻 SPB
📖 第 1 页 / 共 5 页
字号:
         'Stand-alone programs file');

      PLGdoir.set_global_alias (driver, 'compscript', '{'||PLGdoir.plgalias||'package}comp.{'||PLGdoir.plgalias||'sqlext}',
         'Compile script file');
      PLGdoir.set_global_alias (driver, 'tocdoc', '{'||PLGdoir.plgalias||'package}toc.{'||PLGdoir.plgalias||'htmlext}',
         'Table of contents doc file');

      /* Shorthand */
      PLGdoir.set_global_alias (driver, 'pkycoltype', '[objname].{[pkycolname]}%TYPE',
         'Primary key %TYPE declaration');
      PLGdoir.set_global_alias (driver, 'coltype', '[objname].[colname]%TYPE',
         'Column %TYPE declaration');
      PLGdoir.set_global_alias (driver, 'tableRT', '[objname]%ROWTYPE',
         'Table %ROWTYPE declaration');

      /* Code elements
      PLGdoir.set_global_alias (driver, 'cmntstart', '--//');
      PLGdoir.set_global_alias (driver, 'cmntend', '//--');
      */

      /* Standard prefixes and suffixes */
      PLGdoir.set_wrap_alias (driver, 'app',    NULL,  NULL, 'Application signifier');
      PLGdoir.set_wrap_alias (driver, 'pkg',    'te_', NULL, 'Package name');
      PLGdoir.set_wrap_alias (driver, 'test',   NULL, '_tst', 'Test package');
      PLGdoir.set_wrap_alias (driver, 'func',   NULL,  NULL, 'Function');
      PLGdoir.set_wrap_alias (driver, 'cvfunc', NULL,  '$cv', 'Cursor variable type function');
      PLGdoir.set_wrap_alias (driver, 'proc',   NULL,  NULL, 'Procedure');
      PLGdoir.set_wrap_alias (driver, 'sa',     '{[objname]}$', NULL, 'Stand-alone Program');
      PLGdoir.set_wrap_alias (driver, 'in',     NULL,  '_in', 'IN parameter');
      PLGdoir.set_wrap_alias (driver, 'fld',    NULL,  NULL, 'Field of record');
      PLGdoir.set_wrap_alias (driver, 'inout',  NULL,  '_inout', 'IN OUT parameter');
      PLGdoir.set_wrap_alias (driver, 'out',    NULL,  '_out', 'OUT parameter');
      PLGdoir.set_wrap_alias (driver, 'rt',     NULL,  '_rt', 'Record type');
      PLGdoir.set_wrap_alias (driver, 'cvt',     NULL,  '_cvt', 'Cursor variable type');
      PLGdoir.set_wrap_alias (driver, 'cur',    NULL,  '_cur', 'Cursor');
      PLGdoir.set_wrap_alias (driver, 'frc',    NULL,  '$frc', 'Force function');
      PLGdoir.set_wrap_alias (driver, 'updcol', 'upd$', NULL, 'Column update procedure');
      PLGdoir.set_wrap_alias (driver, 'chk',    NULL,  '$chk', 'Check constraint function');
      PLGdoir.set_wrap_alias (driver, 'getpky', NULL, '$pky', 'Returns primary key');
      PLGdoir.set_wrap_alias (driver, 'getval', NULL, '$val',
         'Returns values(s) for primary key');
      PLGdoir.set_wrap_alias (driver, 'getrow', NULL, '$row',
        'Returns row record');
      PLGdoir.set_wrap_alias (driver, 'getpkycv', NULL, '$pcv',
         'Returns cursor variable to primary key');
      PLGdoir.set_wrap_alias (driver, 'getvalcv', NULL, '$vcv',
         'Returns cursor variable to values(s) for primary key');
      PLGdoir.set_wrap_alias (driver, 'getrowcv', NULL, '$rcv',
         'Returns cursor variable to row of data');
      PLGdoir.set_wrap_alias (driver, 'stub',   NULL, NULL,
         'Stand-alone stub around packaged program');

      /* Standard approaches to Exception Handling */
      PLGdoir.set_global_alias (driver,
         PLGdoir.c_plvraise,
         '{'||PLGdoir.plgalias||'PLVexc}.{'||PLGdoir.plgalias||
         'raise} ([errnum], [errmsg]);', -- 99.2.8 Remove alias brackets
         'PL/Vision raise mechanism');

      PLGdoir.set_global_alias (driver,
         PLGdoir.c_plvhandle,
         '{'||PLGdoir.plgalias||'PLVexc}.{'||PLGdoir.plgalias||'recNstop};',
         'PL/Vision handle mechanism');

      PLGdoir.set_global_alias (driver, PLGdoir.c_psraise,
         'RAISE_APPLICATION_ERROR ([errnum], [errmsg]);', -- 99.2.8 Remove alias brackets
         'PL/SQL raise mechanism');

      PLGdoir.set_global_alias (driver, PLGdoir.c_pshandle,
         'RAISE;',
         'PL/SQL handle mechanism');

      PLGdoir.set_global_alias (driver, PLGdoir.c_rcraise,
         '{'||PLGdoir.plgalias||'errnum} := SQLCODE; {'||PLGdoir.plgalias||
         'errmsg} := SQLERRM;',
         'Return code raise mechanism');

      PLGdoir.set_global_alias (driver, PLGdoir.c_rchandle,
         '{'||PLGdoir.plgalias||'errnum} := [failureval]; {'||PLGdoir.plgalias||
         'errmsg} := [failuremsg];',
         'Return code handle mechanism');

      PLGdoir.set_global_alias (driver, PLGdoir.c_successval, 'SQLCODE', 'Success value');
      PLGdoir.set_global_alias (driver, PLGdoir.c_failureval, 'SQLCODE', 'Failure value');
      PLGdoir.set_global_alias (driver, PLGdoir.c_failuremsg, 'SQLERRM', 'Failure message');

      /* Test Elements */
      PLGdoir.set_global_alias (driver, 'displaymech', 'DBMS_OUTPUT.PUT_LINE',
         'Display mechanism');

      PLGdoir.set_global_alias (driver, 'maxtestrows', '5',
         'Row count limit in test scripts');
   END;

   PROCEDURE initialize
   IS
   BEGIN
      /* Set flag to make sure all inserts are "foundations" for the driver. */
      PLGdoir.drvfoundation;

      /* Clean out all global entries related to this driver */
      PLGdoir.delfoundation (driver);
      
      /* Use cleaner approach
      PLGdoir.del (
         drv => driver,
         tab => '%',
         otype => '%',
         itype => '%',
         seq => NULL,
         sch => PLGdoir.c_global,
         foundation_only => TRUE,
         del_header => TRUE,
         del_dirinfo => FALSE
         );
      */
      
      PLGdoir.defdrv (driver, PLGdoir.c_table_dbsrc, 'Table Encapsulator');

      setfiles;

      setidentifiers;

      setaliases;

      setsrc;

      setlookups;

      /* Use Standard Header */
      PLGdoir.usestdhdr (
         drv => driver,
         tab => PLGdoir.c_global,
         sch => PLGdoir.c_global);

      /* Default exception handling: PL/SQL */
      PLGdoir.setpsexc (
         drv => driver,
         tab => PLGdoir.c_global,
         sch => PLGdoir.c_global);

      /* Do NOT use PLVxmn for tracing */
      PLGdoir.nousexmn (
         drv => driver,
         tab => PLGdoir.c_global,
         sch => PLGdoir.c_global);

      /* Include validation code for data integrity */
      PLGdoir.usecheckDI (
         drv => driver,
         tab => PLGdoir.c_global,
         sch => PLGdoir.c_global);
         
      /* Do NOT use cursor variables by default */
      PLGdoir.nosetcurvar (
         drv => driver,
         tab => PLGdoir.c_global,
         sch => PLGdoir.c_global);

      /* Use static SQL by default */
      PLGdoir.setstaticSQL (
         drv => driver,
         tab => PLGdoir.c_global,
         sch => PLGdoir.c_global);

      /* Do NOT create stand-alone programs by default */
      PLGdoir.nosetsaprogs (
         drv => driver,
         tab => PLGdoir.c_global,
         sch => PLGdoir.c_global);

      /* Do NOT create primary key update procedures by default */
      PLGdoir.nosetupdpky (
         drv => driver,
         tab => PLGdoir.c_global,
         sch => PLGdoir.c_global);

      IF PLGgen.is_express_version
      THEN
	      /* Do NOT create row count functions by default */
	      PLGdoir.nosetcountrows (
	         drv => driver,
	         tab => PLGdoir.c_global,
	         sch => PLGdoir.c_global);
		ELSE
	      /* Create row count functions by default */
	      PLGdoir.setcountrows (
	         drv => driver,
	         tab => PLGdoir.c_global,
	         sch => PLGdoir.c_global);
      END IF;
      
      /* Make sure that incremental loading is disabled globally. */
      PLGdoir.setloadnone (
         drv => driver,
         tab => PLGdoir.c_global,
         sch => PLGdoir.c_global);

      /* Minimum set of cursors. */
      PLGdoir.setcurinfo (
         driver,
         PLGdoir.c_global,
         'all',
         '*',
         PLGdoir.c_global
         );

      /* PL/SQL comment characters */
      PLGdoir.setcomment (
         drv => driver,
         tab => PLGdoir.c_global,
         cmnt => '--',
         sch => PLGdoir.c_global);
         
      PLGdoir.nodrvfoundation;
   END;

   PROCEDURE session_init (override_str IN VARCHAR2 := NULL)
   IS
   BEGIN
      NULL;
      /* Assume that these can change at any time. No caching.
      PLGgen.aliascache_define (
         NVL (override_str, 
	      'package,schpackage,tstpackage,tablecv,' ||
			'inrec,oldinrec,inoutrec,pkyrt,pkycv,outrc,closeallproc,loadproc,' ||
			'showloadproc,inoutstart,inoutend,isnullfunc,onerowfunc,tabcountfunc,' ||
			'pkycountfunc,saonerowfunc,onerowcvfunc,valproc,resetfrcproc,initrecfunc,' ||
			'initrecproc,nextpkyfunc,insproc,updproc,updpkyproc,delproc,' ||
			'sainsproc,saupdproc,sadelproc,lookupfkydescproc'
          ));
      */
   END;
   
END PLGte;
/

⌨️ 快捷键说明

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