By default, parameters to a database procedure are INPUT only. Though the parameter value may be updated in the body of the procedure, the changed value is not passed back to the calling application, rule, or procedure. The BYREF designation used in a calling application can be used to force the return of the modified parameter value. For more information on BYREF, see
Execute Procedure (see
EXECUTE PROCEDURE).
For database procedures called from other database procedures or by the firing of a rule, the INOUT and OUT modes can be coded in a parameter declaration to return the modified value of the parameter back to the caller of the procedure. This allows results to be passed from one procedure to another and column values to be changed by BEFORE rules defined on a particular table.