Interface Parameter<T>
-
- Type Parameters:
T
- The parameter type
public interface Parameter<T> extends Named
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 Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description Binding<?,T>
getBinding()
The parameter's underlyingBinding
.Converter<?,T>
getConverter()
The parameter's underlyingConverter
.DataType<T>
getDataType()
The type of this parameter (might not be dialect-specific)DataType<T>
getDataType(Configuration configuration)
The dialect-specific type of this parameterjava.lang.Class<T>
getType()
The Java type of the parameter.boolean
isDefaulted()
Whether this parameter has a default valueboolean
isUnnamed()
Whether this parameter has a name or not.-
Methods inherited from interface org.jooq.Named
getComment, getName, getQualifiedName, getUnqualifiedName
-
-
-
-
Method Detail
-
getType
java.lang.Class<T> getType()
The Java type of the parameter.
-
getDataType
DataType<T> getDataType(Configuration configuration)
The dialect-specific type of this parameter
-
isDefaulted
boolean isDefaulted()
Whether this parameter has a default valueProcedures 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.
-
-