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

📄 plgjava.spb

📁 Oracle PL/SQL procedure generator (second generator type)
💻 SPB
字号:
CREATE OR REPLACE
PACKAGE BODY PLGjava
IS

/* PL/SQL Code Driver Foundation */

/*----------------------------------------------------------------
||                  PL/Generator from Quest Software
||----------------------------------------------------------------
||    File: PLGjava.spb
||  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
||	-------- ------ -----------------------------------------------
|| 9/98     SEF    Created from plgte.spb
-----------------------------------------------------------------*/
   c_pkg CONSTANT CHAR(7) := 'PLGjava';

   PROCEDURE forprogram (
      prog IN VARCHAR2,
      sch IN VARCHAR2 := NULL,
      target_schema IN VARCHAR2 := NULL,
      regonly IN BOOLEAN := FALSE,
      metaonly IN BOOLEAN := FALSE
   )
   IS
      v_open CHAR(1) := PLGgen.aliasopen;
      v_close CHAR(1) := PLGgen.aliasclose;
   BEGIN
      /* Change brackets for alias since Java uses {}. */
      PLGgen.set_alias_bracket ('^', '\');

      PLGgen.fortab (
         PLGjava.driver,
         prog,
         sch,
         target_schema,
         FALSE,
         regonly,
         metaonly
      );

      /* Revert to original brackets. */
      PLGgen.set_alias_bracket (v_open, v_close);
   EXCEPTION
      WHEN OTHERS
      THEN
         PLGgen.set_alias_bracket (v_open, v_close);
   END;

   PROCEDURE setfiles
   IS
   BEGIN
      PLGdoir.defdrvsrc (driver, 1, 'pstojava.gdr',
         'Generate java wrapper around PL/SQL package specification',
         ftype => PLGdoir.c_ft_code,
         use_file => TRUE,
         tab => PLGdoir.c_global,
         sch => PLGdoir.c_global);

   END;

   PROCEDURE setidentifiers
   IS
   BEGIN
      NULL;
   END;

   PROCEDURE setsrc
   IS
   BEGIN
      PLGdoir.setdynvarchar2 (driver, 'JAVA_PROG_DATATYPE_NAME',
         'PLGjava.java_datatype(' ||
         'PLGdesc.g_datatype_names(PLGgen.progsep([\currrow]).prog_datatype))');

      PLGdoir.setdynvarchar2 (driver, 'JAVA_DATATYPE_NAME',
         'PLGjava.java_datatype(' ||
         'PLGdesc.g_datatype_names(PLGgen.argsep([\currrow]).datatype))');

      PLGdoir.setdynvarchar2 (driver, 'PROGTYPE_ABBREV',
         'SUBSTR (PLGgen.progsep([\currrow]).progtype, 1, 4)');

   END;

   PROCEDURE setlookups
   IS
   BEGIN
      NULL;
   END;

   PROCEDURE setaliases
   /* The pre-set aliases */
   IS
   BEGIN
      NULL;
   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.del (
         drv => driver,
         tab => '%',
         otype => '%',
         itype => '%',
         seq => NULL,
         sch => PLGdoir.c_global);

      PLGdoir.defdrv (
         driver, 
         PLGdoir.c_plsql_dbsrc, /* Using this to move PL/SQL to Java... */ 
         'Java Encapsulator',
         just_like => PLGplsql.driver);

      setfiles;

      setidentifiers;

      setaliases;

      setsrc;

      setlookups;

      PLGdoir.nodrvfoundation;
   END;

   FUNCTION java_datatype (ps_datatype IN VARCHAR2)
      RETURN VARCHAR2
   IS
      retval PLGadmin.identifier;
   BEGIN
      IF ps_datatype = PLGdesc.g_datatype_names (PLGdesc.c_varchar2)
      THEN
         retval := 'PStringBuffer';
      ELSIF ps_datatype = PLGdesc.g_datatype_names (PLGdesc.c_boolean)
      THEN
         retval := 'PBoolean';
      ELSIF ps_datatype IN (
         PLGdesc.g_datatype_names (PLGdesc.c_integer),
         PLGdesc.g_datatype_names (PLGdesc.c_number),
         PLGdesc.g_datatype_names (PLGdesc.c_binary_integer),
         PLGdesc.g_datatype_names (PLGdesc.c_integer),
         PLGdesc.g_datatype_names (PLGdesc.c_integer)
         )
      THEN
         retval := 'Pdouble';
      ELSIF ps_datatype = PLGdesc.g_datatype_names (PLGdesc.c_date)
      THEN
         retval := 'Pdate';
      END IF;
      RETURN retval;
   END;

END PLGjava;
/

-- End of DDL script for PLGjava

⌨️ 快捷键说明

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