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