📄 plgjava.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 + -