Module org.jooq
Package org.jooq

Interface Parameter<T>

  • Type Parameters:
    T - The parameter type
    All Superinterfaces:
    Named, QueryPart, Serializable, Typed<T>

    public interface Parameter<T>
    extends Named, Typed<T>
    A parameter to a stored procedure or function.

    Instances of this type cannot be created directly. They are available from generated code.

    Author:
    Lukas Eder
    • Method Detail

      • isDefaulted

        boolean isDefaulted()
        Whether this parameter has a default value

        Procedures and functions with defaulted parameters behave slightly different from ones without defaulted parameters. In PL/SQL and other procedural languages, it is possible to pass parameters by name, reordering names and omitting defaulted parameters:

         CREATE PROCEDURE MY_PROCEDURE (P_DEFAULTED IN NUMBER := 0
                                        P_MANDATORY IN NUMBER);
        
         -- The above procedure can be called as such:
         BEGIN
           -- Assign parameters by index
           MY_PROCEDURE(1, 2);
        
           -- Assign parameters by name
           MY_PROCEDURE(P_DEFAULTED => 1,
                        P_MANDATORY => 2);
        
           -- Omitting defaulted parameters
           MY_PROCEDURE(P_MANDATORY => 2);
         END;
         

        If a procedure has defaulted parameters, jOOQ binds them by name, rather than by index.

        Currently, this is only supported for Oracle 11g

      • isUnnamed

        boolean isUnnamed()
        Whether this parameter has a name or not.

        Some databases (e.g. SQLDialect.POSTGRES) allow for using unnamed parameters. In this case, Named.getName() will return a synthetic name created from the parameter index.