public class StoredProcedureQuerySender extends FixedQuerySender
The StoredProcedureQuerySender class has the following features:
All stored procedure parameters that are not fixed, so specified in the query with a ?
, should
have a corresponding Parameter
entry. Output parameters should have mode="OUTPUT"
, or
mode="INOUT"
depending on how the stored procedure is defined.
NOTE: See DB2XMLWriter
for ResultSet!
JdbcQuerySenderBase.QueryType
HasStatistics.Action
UNP_END, UNP_START
connection, paramList
Constructor and Description |
---|
StoredProcedureQuerySender() |
Modifier and Type | Method and Description |
---|---|
void |
configure()
configure() is called once at startup of the framework in the configure method of the owner of this sender. |
protected Message |
executeOtherQuery(Connection connection,
PreparedStatement statement,
String query,
String resultQuery,
PreparedStatement resStmt,
Message message,
PipeLineSession session,
ParameterList parameterList) |
protected PreparedStatement |
prepareQueryWithColumnsReturned(Connection con,
String query,
String[] columnsReturned) |
protected PreparedStatement |
prepareQueryWithResultSet(Connection con,
String query,
int resultSetConcurrency) |
void |
setAvoidLocking(boolean avoidLocking)
This feature is not supported for StoredProcedureQuerySender.
|
void |
setBlobBase64Direction(Base64Pipe.Direction value)
This feature is not supported for StoredProcedureQuerySender.
|
void |
setBlobCharset(String string)
This feature is not supported for StoredProcedureQuerySender.
|
void |
setBlobColumn(int i)
This feature is not supported for StoredProcedureQuerySender.
|
void |
setBlobsCompressed(boolean b)
This feature is not supported for StoredProcedureQuerySender.
|
void |
setBlobSessionKey(String string)
This feature is not supported for StoredProcedureQuerySender.
|
void |
setBlobSmartGet(boolean b)
This feature is not supported for StoredProcedureQuerySender.
|
void |
setClobColumn(int i)
This feature is not supported for StoredProcedureQuerySender.
|
void |
setClobSessionKey(String string)
This feature is not supported for StoredProcedureQuerySender.
|
void |
setColumnsReturned(String string)
This feature is not supported for StoredProcedureQuerySender.
|
void |
setLockRows(boolean b)
This feature is not supported for StoredProcedureQuerySender.
|
void |
setLockWait(int i)
This feature is not supported for StoredProcedureQuerySender.
|
void |
setMaxRows(int i)
This feature is not supported for StoredProcedureQuerySender.
|
void |
setQuery(String query)
A SQL statement that calls a stored procedure.
|
void |
setQueryType(String queryType)
The query type.
|
void |
setRowIdSessionKey(String string)
This feature is not supported for StoredProcedureQuerySender.
|
void |
setStartRow(int i)
This feature is not supported for StoredProcedureQuerySender.
|
canProvideOutputStream, closeBlock, closeStatementSet, getQuery, openBlock, sendMessage, sendMessage, setBatchSize
adjustQueryAndParameterListForNamedParameters, closeConnectionForSendMessage, convertQuery, executeOtherQuery, executePackageQuery, executeSelectQuery, executeSelectQuery, executeStatementSet, executeUpdateBlobQuery, executeUpdateClobQuery, fillParamArray, getBatchSize, getCallWithRowIdReturned, getConnectionForSendMessage, getQueryExecutionContext, getQueryTypeEnum, getResult, getResult, getResult, getReturnedColumns, getStatement, open, prepareQuery, provideOutputStream, setCloseInputstreamOnExit, setCloseOutputstreamOnExit, setIncludeFieldDefinition, setNullValue, setOutputFormat, setPackageContent, setPrettyPrint, setResultQuery, setScalar, setScalarExtended, setSqlDialect, setStreamCharset, setStreamResultToServlet, setSynchronous, setTrimSpaces, setUseNamedParams, supportsOutputStreamPassThrough
addParameter, close, getParameterList, getTimeout, sendMessage, setTimeout, toString
getAuthAlias, getConnection, getConnectionWithTimeout, getDatasource, getDatasourceInfo, getDatasourceName, getDbmsSupport, getLogPrefix, getPassword, getPhysicalDestinationName, getUsername, isConnectionsArePooled, isTransacted, iterateOverStatistics, setAuthAlias, setConnectionsArePooled, setDatasourceName, setDbmsSupportFactory, setJmsRealm, setPassword, setTransacted, setUsername
getContext, getJndiEnv, setAuthentication, setCredentials, setInitialContextFactoryName, setJndiAuthAlias, setJndiContextPrefix, setJndiProperties, setName, setPrincipal, setProviderURL, setSecurityProtocol, setUrlPkgPrefixes
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
consumesSessionVariable
isSynchronous, sendMessageOrThrow
getName, setName
getApplicationContext, getName
getConfigurationClassLoader
setApplicationContext
getDomain
public void configure() throws ConfigurationException
ISender
configure()
is called once at startup of the framework in the configure method of the owner of this sender.
Purpose of this method is to check whether the static configuration of the sender is correct.
As much as possible class-instantiating should take place in the configure()
or open()
method, to improve performance.configure
in interface IConfigurable
configure
in interface ISender
configure
in class FixedQuerySender
ConfigurationException
protected PreparedStatement prepareQueryWithResultSet(Connection con, String query, int resultSetConcurrency) throws SQLException
prepareQueryWithResultSet
in class JdbcQuerySenderBase<QueryExecutionContext>
SQLException
protected PreparedStatement prepareQueryWithColumnsReturned(Connection con, String query, String[] columnsReturned) throws SQLException
prepareQueryWithColumnsReturned
in class JdbcQuerySenderBase<QueryExecutionContext>
SQLException
protected Message executeOtherQuery(Connection connection, PreparedStatement statement, String query, String resultQuery, PreparedStatement resStmt, Message message, PipeLineSession session, ParameterList parameterList) throws SenderException
executeOtherQuery
in class JdbcQuerySenderBase<QueryExecutionContext>
SenderException
public void setQuery(String query)
CALL
or EXEC
SQL keyword depending on SQL dialect. In case of doubt, the safe choice is to always start with CALL
and choose Oracle dialect.setQuery
in class FixedQuerySender
query
- The SQL statement to invoke the stored procedure.public void setQueryType(String queryType)
JdbcQuerySenderBase.QueryType.SELECT
and JdbcQuerySenderBase.QueryType.OTHER
.
Use JdbcQuerySenderBase.QueryType.SELECT
when your stored procedure returns a row set (not supported by Oracle and PostgreSQL).
Use JdbcQuerySenderBase.QueryType.OTHER
when your stored procedure returns values via OUT
or INOUT
parameters, or does not return
anything at all.
Using any other value will be rejected.
setQueryType
in class JdbcQuerySenderBase<QueryExecutionContext>
queryType
- The queryType.public void setColumnsReturned(String string)
setColumnsReturned
in class JdbcQuerySenderBase<QueryExecutionContext>
public void setLockRows(boolean b)
setLockRows
in class JdbcQuerySenderBase<QueryExecutionContext>
public void setLockWait(int i)
setLockWait
in class JdbcQuerySenderBase<QueryExecutionContext>
public void setBlobColumn(int i)
setBlobColumn
in class JdbcQuerySenderBase<QueryExecutionContext>
public void setBlobSessionKey(String string)
setBlobSessionKey
in class JdbcQuerySenderBase<QueryExecutionContext>
public void setBlobsCompressed(boolean b)
setBlobsCompressed
in class JdbcQuerySenderBase<QueryExecutionContext>
public void setBlobBase64Direction(Base64Pipe.Direction value)
setBlobBase64Direction
in class JdbcQuerySenderBase<QueryExecutionContext>
public void setBlobCharset(String string)
setBlobCharset
in class JdbcQuerySenderBase<QueryExecutionContext>
public void setBlobSmartGet(boolean b)
setBlobSmartGet
in class JdbcQuerySenderBase<QueryExecutionContext>
public void setClobColumn(int i)
setClobColumn
in class JdbcQuerySenderBase<QueryExecutionContext>
public void setClobSessionKey(String string)
setClobSessionKey
in class JdbcQuerySenderBase<QueryExecutionContext>
public void setAvoidLocking(boolean avoidLocking)
setAvoidLocking
in class JdbcQuerySenderBase<QueryExecutionContext>
public void setMaxRows(int i)
setMaxRows
in class JdbcQuerySenderBase<QueryExecutionContext>
public void setStartRow(int i)
setStartRow
in class JdbcQuerySenderBase<QueryExecutionContext>
public void setRowIdSessionKey(String string)
setRowIdSessionKey
in class JdbcQuerySenderBase<QueryExecutionContext>
Copyright © 2023 Frank!Framework. All rights reserved.