Data base functions are a type of [stored procedure|STORED PROCEDURE] that returns a value to a calling program. The function may take parameters or not, but will generally perform a computation or a data retrieval to determine a value and will then return that value to the calling program. At its simplest, an Oracle function like [SYSDATE] returns to the calling program, the current date/time. A moderately more complex function is the [P2K_SMGLX] function which takes two parameters, and executes a data base retrieval to determine the descriptive value of a [lexicon|LEXICON]. A more complex function is [P2K_SEGR] which takes a number of parameters, some of which are optional, and will retrieve data and perform computations to determine a wage in a variety of [rate basis] values. See the list of [Callable Functions|CALLABLE FUNCTION] that can be used by interfaces and discoverer. Customers can create their own [custom data base function|CUSTOM DATA BASE FUNCTION] as well, but care must be taken that it does not compromise the system integrity, and that its naming convention and schema ownership is such that it is not lost on any import/export processes.