When creating a Build Template, Helper Templates are the blue-prints for various sections of code.
This version of tePLSQL includes a set of Default Helper Templates.
The types of database objects that can be generated through a Build Template are:
| Type | Description |
|---|---|
| build | supply cursors, etc to the Template code |
| select | generate code for a View, Cursor, Select statement, CTE, or a Table Macro (future) |
| package | generate code for a Package |
| variable | generate code for a Variable or a Constant |
| plsql-type | generate code for a Subtype, Record, AA, NT, or Ref Cursor |
| exception | generate code for an Exception |
| procedure | generate code for a Function or Procedure |
| exception-block | generate code for the EXCEPTION clause of a Function,Procedur, or Package Initialization |
These helper templates should be automatically loaded into the TE_TEMPLATES table upon a fresh install.
You can manually install (or refresh) using the te_default_helper_templates.install_templates procedure.
By doing this, all existing versions of the Helper Templates will be updated/overwritten.
New ones will be added.
This provides cursors, etc. to be used by Templates. Use this as the head Extension.
note all parameters are VARCHAR2
[h3]Parameters[/h3]
| pos | Parameter name | Parameter Desription |
|---|---|---|
| 1 | schema | Schema owner of the Table to search. |
| 2 | table_name | Name of the Table to search. |
| 3 | search_txt | Search criteria (default -HIDDEN -SYSTEM ) |
[h3]Returned Columns[/h3]
| Column Name | Column Description |
|---|---|
| column_name | Name of the column |
| column_name_rpad | Name of the column RPAD'd to largest returned column |
| order_by | number representing the order of the columns |
| order_by_desc | number representing the reverse order of the columns |
| comma_first | gives a comma (,) for non-first row. Space ( ) otherwise. |
| comma_last | gives a comma (,) for non-last row. Space ( ) otherwise. |
| data_type | data type of the column |
| data_desc | data description of the column ( eg varchar2(10 char), number(6,2) ) |
| comment | Comment for the column |
| data_default | ( LONG data type ! ) default value for the column |
| is_pk | Is the column a part of the Primary Key? [YES/NO] |
| is_id | Is the column an Identity Column(12c) or a single NUMBER column? [YES/NO] |
| is_nullable | Is the column Nullable? [YES/NO] |
| is_hidden | Is the column Hidden? [YES/NO] |
| is_vc | Is the column a Virtual Column? [YES/NO] |
| is_system | (12c+) Was the column System generated? [YES/NO] (opposited of USER_GENERATED) |
[h3]Search String[/h3]
Search String is a space separated list of key-words with/without a prefix [+/-]
- If the key-word has no prefix, All columns of that type are returned
- If the key-wird has a
+prefix, those column types are also returned - If the key-word has a
-prefix, those column types are not returned.
| key-word | Column Type |
|---|---|
| PK | Column is a Primary Key |
| ID | Column is the Identity Column |
| VC | Column is a Virtual Column |
| HIDDEN | Column is a Hidden Column |
| SYSTEM | Column is a System Generated column. |
| NULLABLE | Column can contain nulls |
| NOTNULL | Column can not contain nulls |
| DEFAULT | Column has a default value defined |
[h3]example[/h3]
(Default) To get all Visible, user generated columns (including Virtual Columns)
"Cursor"( '${schema}', '${table_name}' )To get NOT NULL columns with a DEFAULT value
"Cursor"( '${schema}', '${table_name}', 'DEFAULT -NULLABLE' )To get all visible, user generate, non-PK, non-Virtual columns
"Cursor"( '${schema}', '${table_name}', '-PK -VC' )Supported sub-extenstions are:
- packages
- select (View or stand-alone Table Macro)
- procedures (stand-alone Functions/Procedures)
Extend this to generate a Package (both Spec and Body will be generated).
| Block | req? | Description |
|---|---|---|
| name | D | name of the Package. (default is the object's name) |
| Documentation | D | In-code documentation for the Exception. |
| init | If define, this is the body of the Package's initialization code. |
Legend
- D - Required. But, a default value is given.
Supported sub-extensions are
- select (produces a cursor)
- plsql-type
- procedure
- variables
- exception
- exception-block (needs an
initblock to generate)
note: Object names of the form private.* will only be generated in the Body.
Extend this to generates code for Subtypes, Records, Nested Tables, Associative Array, and Ref Cursors.
note: Current version of the default helper template requires a subtype/record for nt's, aa's, and ref cursors.
| block | req? | ST/R | Description |
|---|---|---|---|
| name | D | Both | name of the Record/Subtype pl/sql type. (default is the object's name) |
| data-type | Y | ST | Data type for a Subtype pl/sql type. Set only one (data-type, record) |
| record | Y | R | Defines the attributes for a Record pl/sql type. Set only one (data-type, record) |
| Documentation | Both | In-code documentation for pl/sql types | |
| nt-name | Both | Name for a Nested Table pl/sql type. Set this to generate a Nested Table. | |
| aa-name | Both | Name for an Associative Array pl/sql type. Set this to generate an Associative Array. | |
| ref-name | Both | Name for an Ref Cursor pl/sql type. Set this to generate a Ref Cursor. | |
| aa-key-data-type | D | AA | Set this to define the INDEX BY clause. (default is `pls_integer') |
Legend
- D - Required. But, a default value is given.
- Both - used by Subtypes and Records
- ST - only for Subtypes
- R - only for Records
- AA* - only for Associative Arrays. (Requires
aa-nameto be defined)
Extend this to generate code for a variable.
| block | req? | Description |
|---|---|---|
| name | D | name of the variable. (default is the object's name) |
| Documentation | In-code documentation for the variable. | |
| data-type | Y | Data type of the variable. |
| value | Sets the value of the variable in the Declaration section. | |
| constant-value | Defines the variable as a Constant. Also, sets its value. |
Legend
- D - Required. But, a default value is given.
- Y - Required.
Extend this to generate code for Select, View, Cursor, CTE, or Table Macro(future).
note: Future version will generate SQL Table Macro code too
block | req? | For? | Description
------|------|--------
name | D | VCM | name of the view,cursor. (default is the object's name)
SQL | D | all | Select Statement. (default: select * from dual)
parameters | | CM | Parameters for the Cursor/Table Macro. use teplsql.goto_tab(1) for multiline parameters.
rcd-name* | | C | Name for a Record type. Set this to generate a Subtype for the cursor's %ROWTYPE.
nt-name* | | C | Name for a Nested Table pl/sql type. Set this to generate a Nested Table.
aa-name* | | C | Name for an Associative Array pl/sql type. Set this to generate an Associative Array.
ref-name* | | C | Name for an Ref Cursor pl/sql type. Set this to generate a Ref Cursor.
aa-key-data-type* | D | C | Set this to define the INDEX BY clause. (default is pls_integer'). requires aa-name` to be defined.
Legend
- D - Required. But, a default value is given.
- V - Used for Views
- C - Used for Cursors
- M - Used for Table Macros
| Block | Description |
|---|---|
| specification | generate code for a cusor (automatically called for Package, Function, Procedure) |
| make-view | generate code for create view |
| cte | generate code for CTE. WITH keyword NOT included |
| (tbd) | generate code for a stand-alone Table Macro |
Generate code for a Procedure or Function.
note This version of the Helper Template does not support pipeline functions or other function options ( eg deterministic, etc.)
| Block | req? | For? | Description |
|---|---|---|---|
| name | D | both | name of the Procedure/Function. (default is the object's name) |
| Documentation | D | In-code documentation for the Procedure/Function. | |
| return-variable-type | F | Sets the return variable data type. If defined, Function code is generated. | |
| return-variable-name | D | F | Sets the return variable's name. (Default: return_variable) |
| return-type | D | F | Sets the Function's return type. (Default: same as return-variable-type ) |
| decl | both | Custom declaration code. (Funtions automatically declare the return variable) | |
| bdy | D | both | Custom body code. (Default null;) Functions always end with return return_variable; |
| parameters | Both | Parameters for the Function/Procedure. use teplsql.goto_tab(1) for multiline parameters. |
Legend
- D - Required. But, a default value is given.
- F - Only used for Functions
- select (produces a cursor)
- plsql-type
- procedure
- variables
- exception
- exception-block
Generate code for a custom exception.
| Block | req? | Description |
|---|---|---|
| name | D | name of the Exception. (default is the object's name) |
| Documentation | In-code documentation for the Exception. | |
| number | D | Exception number. (Default: -20000). |
| text | D | The Text that is returned when this exception is raised |
| constant-number-name | If defined, generates a constant variable based on the value for number |
|
| constant-text-name | If defined, generates a constant based on the value for text. |
|
| exception-code | D | The code that is ran when an exception is raised. (Default: raise_application_exception()) |
- D - Required. But, a default value is given.
| Block | Description |
|---|---|
| when-clause | Generates code for the WHEN clause of the EXCEPTION clause. |
Generates code for the exception section of a procedure/function/package initialization.
note the object's name is only used for ordering of the generated code
| Block | req? | Description |
|---|---|---|
| body | Y | Must generate the WHEN clause for an EXCEPTION clause |
- Y - Required.