The PLVgen (PL/Vision GENerator) package provides a set of procedure you can use to generate your own PL/SQL code. See Chapter 16, PLVgen: Generating PL/SQL Programs for details.
c_indent CONSTANT INTEGER := 0;
The default initial indentation of generated code.
c_incr_indent CONSTANT INTEGER := 3;
The default incremental indentation of generated code.
c_literal CONSTANT CHAR(1) := '=';
The character used to indicate that the default value for the string function is not to be evaluated before placing in the function definition.
c_def_length CONSTANT INTEGER := 100;
The default length for a string function's local variable.
c_none CONSTANT VARCHAR2(1) := 'N';
Indicates that no blank lines are to be placed before or after the current line of code.
c_before CONSTANT VARCHAR2(1) := 'B';
Indicates that a blank line is to be placed before the current line of code.
c_after CONSTANT VARCHAR2(1) := 'A';
Indicates that a blank line is to be placed after the current line of code.
c_both CONSTANT VARCHAR2(2) := 'BA';
Indicates that a blank line is to be placed both before and after the current line of code.
PROCEDURE set_indent
(indent_in IN NUMBER,
incr_indent_in IN NUMBER := c_incr_indent);
Sets the initial and incremental indentation.
FUNCTION indent RETURN NUMBER;
Returns the current value for initial indentation.
FUNCTION incr_indent RETURN NUMBER;
Returns the current value for incremental indentation.
PLVgen offers a large selection of toggles or on-off switches, which you can use to modify the content of code generated by this package. Each toggle has a "turn on" procedure, a "turn off" procedure, and a function returning the current state of the toggle (on or off).
PROCEDURE usetrc;
PROCEDURE nousetrc;
FUNCTION using_trc RETURN BOOLEAN;
Controls inclusion of the PLVtrc startup and terminate procedures.
PROCEDURE useexc;
PROCEDURE nouseexc;
FUNCTION using_exc RETURN BOOLEAN;
Controls inclusion of PLVexc exception handlers in exception sections of programs.
PROCEDURE usehdr;
PROCEDURE nousehdr;
FUNCTION using_hdr RETURN BOOLEAN;
Controls inclusion of program headers in packages, procedures, and functions.
PROCEDURE usecmnt;
PROCEDURE nousecmnt;
FUNCTION using_cmnt RETURN BOOLEAN;
Controls inclusion of comment lines in generated code.
PROCEDURE usehlp;
PROCEDURE nousehlp;
FUNCTION using_hlp RETURN BOOLEAN;
Controls inclusion of help text stubs and generation of the help procedure in packages.
PROCEDURE usecor;
PROCEDURE nousecor;
FUNCTION using_cor RETURN BOOLEAN;
Controls inclusion of code required to CREATE OR REPLACE program units.
PROCEDURE useln;
PROCEDURE nouseln;
FUNCTION usingln RETURN BOOLEAN;
Controls inclusion of line numbers in prefix of generated code.
PROCEDURE usemin;
Turns off all the above toggles.
PROCEDURE usemax;
Turns on all the above toggles.
PROCEDURE helpproc
(prog_in IN VARCHAR2 := NULL, indent_in IN INTEGER := 0);
Generates a procedure that gives main-topic help for the specified program unit.
PROCEDURE helptext (context_in IN VARCHAR2 := PLVhlp.c_main);
Generates a comment block in the correct format to be used as online help text with the PLVhlp package.
PROCEDURE proc
(name_in IN VARCHAR2,
params_in IN VARCHAR2 := NULL,
exec_in IN VARCHAR2 := NULL,
incl_exc_in IN BOOLEAN := TRUE,
indent_in IN INTEGER := 0,
blank_lines_in IN VARCHAR2 := c_before);
Generates a procedure of the specified name. You can also provide a parameter list and one or more executable lines. Finally, you can decide to include an exception section, indent the code, and perform blank-line processing.
A function has a RETURN datatype. PLVgen allows you to generate string, numeric, date, and Boolean functions. You can also supply literal and symbol default values. As a result, the func procedure is overloaded as shown:
PROCEDURE func
(name_in IN VARCHAR2,
datadesc_in VARCHAR2,
defval_in IN VARCHAR2 := NULL,
length_in IN INTEGER := c_def_length,
incl_exc_in IN BOOLEAN := TRUE);
Generates a string function (since the datatype for the datdesc_in parameter is VARCHAR2).
PROCEDURE func
(name_in IN VARCHAR2,
datadesc_in datatype,
defval_in IN datatype := NULL,
incl_exc_in IN BOOLEAN := TRUE);
Generates a function of the specified datatype, which is either NUMBER, DATE, or BOOLEAN. Notice that the default has the same datatype as the datadesc_in parameter. This is a default value that is evaluated as a literal.
PROCEDURE func
(name_in IN VARCHAR2,
datadesc_in datatype,
defval_in IN VARCHAR2,
incl_exc_in IN BOOLEAN := TRUE);
Generates a function of the specified datatype, which is either NUMBER, DATE, or BOOLEAN. Notice that the default in this version is a string. When you use this format, the default value is treated as an expression that is not evaluated.
Get-and-set routines provide a programmatic layer of code around a private data structure. As a result, the get-and-sets or "gas" generators have associated with them a datatype. PLVgen allows you to generate string, numeric, date, and Boolean get-and-sets. You can also supply literal and symbol default values. As a result, the gas procedure is overloaded with the following flavors:
PROCEDURE gas
(name_in IN VARCHAR2,
valtype_in VARCHAR2,
defval_in IN VARCHAR2 := NULL,
length_in IN INTEGER := c_def_length);
Generates a string function (since the datatype for the datdesc_in parameter is VARCHAR2).
PROCEDURE gas
(name_in IN VARCHAR2,
valtype_in datatype,
defval_in IN datatype := NULL);
Generates get-and-sets of the specified datatype, which is either NUMBER, DATE, or BOOLEAN. Notice that the default has the same datatype as the datadesc_in parameter. This is a default value that is evaluated as a literal.
PROCEDURE gas
(name_in IN VARCHAR2, valtype_in datatype,
defval_in IN VARCHAR2);
Generates get-and-sets of the specified datatype, which is either NUMBER, DATE, or BOOLEAN. Notice that the default in this version is a string. When you use this format, the default value is an expression that is not evaluated.
PROCEDURE toggle (name_in IN VARCHAR2 := NULL);
Generates a variation of get-and-set based on a Boolean toggle. If you do not give a name, turn_on and turn_off are used as the on-off procedure names.
PROCEDURE curdecl
(cur_in IN VARCHAR2,
ind_in IN INTEGER := 0,
table_in IN VARCHAR2 := NULL,
collist_in IN VARCHAR2 := NULL,
gen_rec_in IN BOOLEAN := TRUE);
Generates a cursor declaration with the SQL statement formatted for maximum readability.
PROCEDURE cfloop (table_in IN VARCHAR2);
Generates a cursor FOR loop and framework for a cursor declaration.
PROCEDURE recfnd (table_in IN VARCHAR2);
Generates a function that returns TRUE if a record is found, FALSE otherwise.
PROCEDURE timer (plsql_in IN VARCHAR2);
Generates a function that returns TRUE if a record is found, FALSE otherwise.
Copyright (c) 2000 O'Reilly & Associates. All rights reserved.