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.
| This HTML Help has been published using the chm2web software. |