The RDB$ROUTINES system table describes each routine that is part
of a stored module or a standalone external routine. An external
routine can either be part of a module or standalone (outside the
context of a module). The following table provides information on
the columns of the RDB$ROUTINES system table.
Data
Column Name Type Summary Description
RDB$ROUTINE_NAME char(31) Name of the routine.
RDB$GENERIC_ROUTINE_NAME char(31) Reserved for future use.
RDB$MODULE_ID integer The identifier of the
module that contains this
routine. If routine is
standalone, value is 0.
RDB$ROUTINE_ID integer Unique identifier assigned
to this routine.
RDB$ROUTINE_VERSION char(16) Routine version and
checksum. Allows runtime
validation of the routine
with respect to the
database.
RDB$PARAMETER_COUNT integer The number of parameters
for this routine.
RDB$MIN_PARAMETER_COUNT integer Minimum number of
parameters for this
routine.
RDB$ROUTINE_BLR list The BLR for this routine.
of byte If the routine is external,
varying this column is set to NULL.
RDB$ROUTINE_SOURCE list Source of the routine as
of byte provided by the definer.
varying
RDB$FLAGS integer Flags.
RDB$SOURCE_LANGUAGE integer The RDB$SOURCE_LANGUAGE
section lists the values
for this column.
RDB$DESCRIPTION list Description of the routine.
of byte
varying
RDB$ACCESS_CONTROL list The access control list
of byte (ACL) to control access to
varying the routine. This value can
be NULL.
RDB$SECURITY_CLASS char(20) Reserved for future use.
RDB$EXTENSION_PARAMETERS list Stores interface
of byte information about the
varying routine. This includes
parameter mappings, the
shareable image name, and
entry point name.
RDB$TYPE_ID integer Reserved for future use.
RDB$ROUTINE_OWNER char(31) Owner of the routine. This
column is only used when
the routine is standalone
(when RDB$MODULE_ID is
0) otherwise the value is
NULL.
RDB$CREATED date vms Set when the routine is
created (the same as the
parent module's creation
timestamp).
RDB$LAST_ALTERED date vms Set when the routine is
modified by the ALTER,
RENAME, GRANT, and REVOKE
statements.
RDB$ROUTINE_CREATOR char(31) Creator of this routine.
Differentiates between
AUTHORIZATION and OWNER.
1 – RDB$FLAGS
Represents flags for RDB$ROUTINES system table.
Bit
Position Description
0 Routine is a function. (Call returns a result.)
1 Routine is not valid. (Invalidated by a metadata
change.)
2 The function is not deterministic (that is, the routine
is variant). A subsequent invocation of the routine
with identical parameters may return different results.
3 Routine can change the transaction state.
4 Routine is in a secured shareable image.
5 Reserved for future use.
6 Routine is not valid. (Invalidated by a metadata change
to the object upon which this routine depends. This
dependency is a language semantics dependency.)
7 Reserved for future use.
8 External function returns NULL when called with any
NULL parameter.
9 Routine has been analyzed (used for trigger dependency
tracking).
10 Routine inserts rows.
11 Routine modifies rows.
12 Routine deletes rows.
13 Routine selects rows.
14 Routine calls other routines.
15 Reserved for future use.
16 Routine created with USAGE IS LOCAL clause.
17 Reserved for future use.
18 Reserved for future use.
19 Routine is a SYSTEM routine.
20 Routine generated by Oracle Rdb.
Other bits are reserved for future use.
2 – RDB$SOURCE_LANGUAGE
The following table lists the values for the RDB$SOURCE_LANGUAGE
column.
Value Language
0 Language undefined
1 Ada
2 C
3 COBOL
4 FORTRAN
5 Pascal
6 Reserved for future use.
7 BASIC
8 GENERAL
9 PL/I
10 SQL - default for stored functions and stored procedures