CREATE PACKAGE BODY
Creates a package body
DSQL
CREATE PACKAGE BODY name AS BEGIN [ <package_item> ... ] [ <package_body_item> ... ] END <package_item> ::= !! SeeCREATE PACKAGE
syntax !! <package_body_item> ::= <function_impl> | <procedure_impl> <function_impl> ::= FUNCTION funcname [ ( [ <in_params> ] ) ] RETURNS <domain_or_non_array_type> [COLLATE collation] [DETERMINISTIC] <module-body> <procedure_impl> ::= PROCEDURE procname [ ( [ <in_params> ] ) ] [RETURNS (<out_params>)] <module-body> <module-body> ::= !! See Syntax of Module Body !! <in_params> ::= !! SeeCREATE PACKAGE
syntax !! !! See also Rules below !! <out_params> ::= !! SeeCREATE PACKAGE
syntax !! <domain_or_non_array_type> ::= !! See Scalar Data Types Syntax !!
Parameter | Description |
---|---|
package_name |
Package name.The maximum length is 63 characters.The package name must be unique among all package names. |
function_impl |
Function implementation.Essentially a |
procedure_impl |
Procedure implementationEssentially a |
func_name |
Function name.The maximum length is 63 characters.The function name must be unique within the package. |
collation |
Collation |
proc_name |
Procedure name.The maximum length is 63 characters.The function name must be unique within the package. |
The CREATE PACKAGE BODY
statement creates a new package body.The package body can only be created after the package header has been created.If there is no package header with name package_name, an error is raised.
All procedures and functions declared in the package header must be implemented in the package body.Additional procedures and functions may be defined and implemented in the package body only.Procedure and functions defined in the package body, but not defined in the package header, are not visible outside the package body.
The names of procedures and functions defined in the package body must be unique among the names of procedures and functions defined in the package header and implemented in the package body.
Note
|
Package procedure and function names may shadow global routines
If a package header or package body declares a procedure or function with the same name as a stored procedure or function in the global namespace, it is not possible to call that global procedure or function from the package body.In this case, the procedure or function of the package will always be called. For this reason, it is recommended that the names of stored procedures and functions in packages do not overlap with names of stored procedures and functions in the global namespace. |
-
In the package body, all procedures and functions must be implemented with the same signature as declared in the header and at the beginning of the package body
-
The default values for procedure or function parameters cannot be overridden (as specified in the package header or in <package_item>).This means default values can only be defined in <package_body_item> for procedures or functions that have not been defined in the package header or earlier in the package body.
Note
|
UDF declarations ( |