This
topic describes syntax fragments that are used to uniquely identify
a function, method, or procedure that is not
defined in a module.
Function designator
A function designator
uniquely identifies a single function. Function designators typically
appear in DDL statements for functions (such as DROP or ALTER). A function designator must not identify a module
function (SQLSTATE 42883).
function-designator
|--+-FUNCTION--function-name--+-------------------------+-+-----|
| '-(--+---------------+--)-' |
| | .-,---------. | |
| | V | | |
| '---data-type-+-' |
'-SPECIFIC FUNCTION--specific-name---------------------'
- FUNCTION function-name
- Identifies a particular function, and is valid only if there is
exactly one function instance with the name function-name in
the schema. The identified function can have any number of parameters
defined for it. In dynamic SQL statements, the CURRENT SCHEMA special
register is used as a qualifier for an unqualified object name. In
static SQL statements, the QUALIFIER precompile/bind option implicitly
specifies the qualifier for unqualified object names. If no function
by this name exists in the named or implied schema, an error (SQLSTATE
42704) is raised. If there is more than one instance of the function
in the named or implied schema, an error (SQLSTATE 42725) is raised.
- FUNCTION function-name (data-type,...)
- Provides the function signature, which uniquely identifies the
function. The function resolution algorithm is not used.
- function-name
- Specifies the name of the function. In dynamic SQL statements,
the CURRENT SCHEMA special register is used as a qualifier for an
unqualified object name. In static SQL statements, the QUALIFIER precompile/bind
option implicitly specifies the qualifier for unqualified object names.
- (data-type,...)
- Values must match the data types that were specified (in the corresponding
position) on the CREATE FUNCTION statement. The number of data types,
and the logical concatenation of the data types, is used to identify
the specific function instance.
If a data type is unqualified,
the type name is resolved by searching the schemas on the SQL path.
This also applies to data type names specified for a REFERENCE type.
It
is not necessary to specify the length, precision, or scale for the
parameterized data types. Instead, an empty set of parentheses can
be coded to indicate that these attributes are to be ignored when
looking for a data type match.
FLOAT() cannot be used (SQLSTATE
42601), because the parameter value indicates different data types
(REAL or DOUBLE).
If length, precision, or scale
is coded, the value must exactly match that specified in the CREATE
FUNCTION statement. When length is specified for character and graphic
string data types, the string unit of the length attribute must exactly
match that specified in the CREATE FUNCTION statement.
A type
of FLOAT(n) does not need to match the defined
value for n, because 0 < n <
25 means REAL, and 24 < n < 54 means
DOUBLE. Matching occurs on the basis of whether the type is REAL or
DOUBLE.
If no function with the specified signature exists
in the named or implied schema, an error (SQLSTATE 42883) is raised.
- SPECIFIC FUNCTION specific-name
- Identifies a particular user-defined function, using the name
that is specified or defaulted to at function creation time. In dynamic
SQL statements, the CURRENT SCHEMA special register is used as a qualifier
for an unqualified object name. In static SQL statements, the QUALIFIER
precompile/bind option implicitly specifies the qualifier for unqualified
object names. The specific-name must identify
a specific function instance in the named or implied schema; otherwise,
an error (SQLSTATE 42704) is raised.
Method designator
A method designator uniquely
identifies a single method. Method designators typically appear in
DDL statements for methods (such as DROP or ALTER).
method-designator
|--+-METHOD--method-name--+-------------------------+--FOR--type-name-+--|
| '-(--+---------------+--)-' |
| | .-,---------. | |
| | V | | |
| '---data-type-+-' |
'-SPECIFIC METHOD--specific-name-----------------------------------'
- METHOD method-name
- Identifies a particular method, and is valid only if there is
exactly one method instance with the name method-name for
the type type-name. The identified method
can have any number of parameters defined for it. If no method by
this name exists for the type, an error (SQLSTATE 42704) is raised.
If there is more than one instance of the method for the type, an
error (SQLSTATE 42725) is raised.
- METHOD method-name (data-type,...)
- Provides the method signature, which uniquely identifies the method.
The method resolution algorithm is not used.
- method-name
- Specifies the name of the method for the type type-name.
- (data-type,...)
- Values must match the data types that were specified (in the corresponding
position) on the CREATE TYPE statement. The number of data types,
and the logical concatenation of the data types, is used to identify
the specific method instance.
If a data type is unqualified, the
type name is resolved by searching the schemas on the SQL path. This
also applies to data type names specified for a REFERENCE type.
It
is not necessary to specify the length, precision, or scale for the
parameterized data types. Instead, an empty set of parentheses can
be coded to indicate that these attributes are to be ignored when
looking for a data type match.
FLOAT() cannot be used (SQLSTATE
42601), because the parameter value indicates different data types
(REAL or DOUBLE).
If length, precision, or scale
is coded, the value must exactly match that specified in the CREATE
TYPE statement. When length is specified for character and graphic
string data types, the string unit of the length attribute must exactly
match that specified in the CREATE TYPE statement.
A type
of FLOAT(n) does not need to match the defined
value for n, because 0 < n <
25 means REAL, and 24 < n < 54 means
DOUBLE. Matching occurs on the basis of whether the type is REAL or
DOUBLE.
If no method with the specified signature exists for
the type in the named or implied schema, an error (SQLSTATE 42883)
is raised.
- FOR type-name
- Names the type with which the specified method is to be associated.
The name must identify a type already described in the catalog (SQLSTATE
42704). In dynamic SQL statements, the CURRENT SCHEMA special register
is used as a qualifier for an unqualified object name. In static SQL
statements, the QUALIFIER precompile/bind option implicitly specifies
the qualifier for unqualified object names.
- SPECIFIC METHOD specific-name
- Identifies a particular method, using the name that is specified
or defaulted to at method creation time. In dynamic SQL statements,
the CURRENT SCHEMA special register is used as a qualifier for an
unqualified object name. In static SQL statements, the QUALIFIER precompile/bind
option implicitly specifies the qualifier for unqualified object names.
The specific-name must identify a specific
method instance in the named or implied schema; otherwise, an error
(SQLSTATE 42704) is raised.
Procedure designator
A procedure designator
uniquely identifies a single procedure. Procedure designators typically
appear in DDL statements for procedures (such as DROP or ALTER). A procedure designator must not identify a module
procedure (SQLSTATE 42883).
procedure-designator
|--+-PROCEDURE--procedure-name--+-------------------------+-+---|
| '-(--+---------------+--)-' |
| | .-,---------. | |
| | V | | |
| '---data-type-+-' |
'-SPECIFIC PROCEDURE--specific-name----------------------'
- PROCEDURE procedure-name
- Identifies a particular procedure, and is valid only if there
is exactly one procedure instance with the name procedure-name in
the schema. The identified procedure can have any number of parameters
defined for it. In dynamic SQL statements, the CURRENT SCHEMA special
register is used as a qualifier for an unqualified object name. In
static SQL statements, the QUALIFIER precompile/bind option implicitly
specifies the qualifier for unqualified object names. If no procedure
by this name exists in the named or implied schema, an error (SQLSTATE
42704) is raised. If there is more than one instance of the procedure
in the named or implied schema, an error (SQLSTATE 42725) is raised.
- PROCEDURE procedure-name (data-type,...)
- Provides the procedure signature, which uniquely identifies the
procedure. The procedure resolution algorithm is not used.
- procedure-name
- Specifies the name of the procedure. In dynamic SQL statements,
the CURRENT SCHEMA special register is used as a qualifier for an
unqualified object name. In static SQL statements, the QUALIFIER precompile/bind
option implicitly specifies the qualifier for unqualified object names.
- (data-type,...)
- Values must match the data types that were specified (in the corresponding
position) on the CREATE PROCEDURE statement. The number of data types,
and the logical concatenation of the data types, is used to identify
the specific procedure instance.
If a data type is unqualified,
the type name is resolved by searching the schemas on the SQL path.
This also applies to data type names specified for a REFERENCE type.
It
is not necessary to specify the length, precision, or scale for the
parameterized data types. Instead, an empty set of parentheses can
be coded to indicate that these attributes are to be ignored when
looking for a data type match.
FLOAT() cannot be used (SQLSTATE
42601), because the parameter value indicates different data types
(REAL or DOUBLE).
If length, precision, or scale
is coded, the value must exactly match that specified in the CREATE
PROCEDURE statement. When length is specified for character and graphic
string data types, the string unit of the length attribute must exactly
match that specified in the CREATE PROCEDURE statement.
A
type of FLOAT(n) does not need to match
the defined value for n, because 0 < n <
25 means REAL, and 24 < n < 54 means
DOUBLE. Matching occurs on the basis of whether the type is REAL or
DOUBLE.
If no procedure with the specified signature exists
in the named or implied schema, an error (SQLSTATE 42883) is raised.
- SPECIFIC PROCEDURE specific-name
- Identifies a particular procedure, using the name that is specified
or defaulted to at procedure creation time. In dynamic SQL statements,
the CURRENT SCHEMA special register is used as a qualifier for an
unqualified object name. In static SQL statements, the QUALIFIER precompile/bind
option implicitly specifies the qualifier for unqualified object names.
The specific-name must identify a specific
procedure instance in the named or implied schema; otherwise, an error
(SQLSTATE 42704) is raised.