AutoCloseable
, OracleStatement
, PreparedStatement
, Statement
, Wrapper
OracleCallableStatement
public interface OraclePreparedStatement extends PreparedStatement, OracleStatement
java.sql.PreparedStatement
. You can use java.sql.PreparedStatement
in your application where you do not make use of the Oracle extensions. However, when your application uses the Oracle extensions to java.sql.PreparedStatement
you must cast your prepared statement object to the type oracle.jdbc.OraclePreparedStatement
. Although the type by which the java compiler will identify the statement object is changed, the object itself is unchanged.
Extended functionality consists of setXXX()
methods for binding oracle.sql.
types and objects into prepared statements, and methods to support Oracle performance extensions on a statement-by-statements basis.
About prepared statements : To write changes to the database, such as for INSERT
or UPDATE
operations, you will typically create a PreparedStatement
object. This allows you to execute a statement with varying sets of input parameters. The prepareStatement()
method of your JDBC Connection
object allows you to define a statement that takes variable bind parameters, and returns a JDBC PreparedStatement
object with your statement definition.
Bind your data : Use setXXX()
methods on the PreparedStatement
object to bind data into the prepared statement to be sent to the database. Again, some of these methods are Oracle specific and require that you cast your PreparedStatement
object to the OraclePreparedStatement
type.
For example, if you have a Connection
object named conn
and a RAW named my_raw
, then write the RAW to the database as follows:
PreparedStatement ps = conn.prepareStatement ("INSERT INTO raw_table VALUES(?)"); ((OraclePreparedStatement)ps).setRAW(1, my_raw); ps.execute();
Connection.prepareStatement
Modifier and Type | Field | Description |
---|---|---|
static short |
FORM_CHAR |
Specifies the "form of use" for SQL CHAR datatypes (CHAR, VARCHAR2 and CLOB).
|
static short |
FORM_NCHAR |
Specifies the "form of use" for SQL NCHAR datatypes (NCHAR, NVARCHAR2 and NCLOB).
|
EXPLICIT, IMPLICIT, NEW
CLOSE_ALL_RESULTS, CLOSE_CURRENT_RESULT, EXECUTE_FAILED, KEEP_CURRENT_RESULT, NO_GENERATED_KEYS, RETURN_GENERATED_KEYS, SUCCESS_NO_INFO
Modifier and Type | Method | Description |
---|---|---|
void |
defineParameterType(int param_index, int type, int max_size) |
Define the type under which you will bind the parameter and the maximum size (in characters) of data you will bind in binds.
|
void |
defineParameterTypeBytes(int param_index, int type, int max_size) |
Define the type under which you will bind the parameter and the maximum size (in bytes) of data you will bind in binds.
|
void |
defineParameterTypeChars(int param_index, int type, int max_size) |
Define the type under which you will bind the parameter and the maximum size (in characters) of data you will bind in binds.
|
int |
getExecuteBatch() |
Deprecated.
As of 12.1 all APIs related to oracle-style statement batching are deprecated in favor of standard JDBC batching.
|
ResultSet |
getReturnResultSet() |
Returns result set that contains data returned from DML Returning.
|
OracleParameterMetaData |
OracleGetParameterMetaData() |
Retrieves the number, types and properties of this
PreparedStatement object's parameters. |
void |
registerReturnParameter(int paramIndex, int externalType) |
Registers return parameter for DML Returning.
|
void |
registerReturnParameter(int paramIndex, int externalType, int maxSize) |
Registers return parameter for DML Returning.
|
void |
registerReturnParameter(int paramIndex, int externalType, String typeName) |
Registers return parameter for DML Returning.
|
int |
sendBatch() |
Deprecated.
As of 12.1 all APIs related to oracle-style statement batching are deprecated in favor of standard JDBC batching.
|
void |
setARRAY(int parameterIndex, ARRAY arr) |
Binds the designated parameter to a
oracle.sql.ARRAY . |
void |
setArrayAtName(String parameterName, Array value) |
Sets the designated parameter to a Java Array value.
|
void |
setARRAYAtName(String parameterName, ARRAY value) |
Sets the designated parameter to a
oracle.sql.ARRAY value. |
void |
setAsciiStreamAtName(String parameterName, InputStream stream) |
Sets the designated parameter to a Java AsciiStream value.
|
void |
setAsciiStreamAtName(String parameterName, InputStream stream, int length) |
Sets the designated parameter to a Java AsciiStream value.
|
void |
setAsciiStreamAtName(String parameterName, InputStream stream, long length) |
Sets the designated parameter to a Java AsciiStream value.
|
void |
setBfile(int parameterIndex, BFILE file) |
Binds the designated parameter to a
oracle.sql.BFILE value. |
void |
setBFILE(int parameterIndex, BFILE file) |
Binds the designated parameter to a
oracle.sql.BFILE value. |
void |
setBfileAtName(String parameterName, BFILE value) |
Sets the designated parameter to a
oracle.sql.BFILE value. |
void |
setBFILEAtName(String parameterName, BFILE value) |
Sets the designated parameter to a
oracle.sql.BFILE value. |
void |
setBigDecimalAtName(String parameterName, BigDecimal value) |
Sets the designated parameter to a Java BigDecimal value.
|
void |
setBinaryDouble(int parameterIndex, double value) |
Sets the designated parameter to a Java double value.
|
void |
setBinaryDouble(int parameterIndex, BINARY_DOUBLE value) |
Sets the designated parameter to an oracle.sql.BINARY_DOUBLE value.
|
void |
setBinaryDoubleAtName(String parameterName, double value) |
Sets the designated parameter to a Java Double value.
|
void |
setBinaryDoubleAtName(String parameterName, BINARY_DOUBLE value) |
Sets the designated parameter to an oracle.sql.BINARY_DOUBLE value.
|
void |
setBinaryFloat(int parameterIndex, float value) |
Sets the designated parameter to a Java float value.
|
void |
setBinaryFloat(int parameterIndex, BINARY_FLOAT value) |
Sets the designated parameter to an oracle.sql.BINARY_FLOAT value.
|
void |
setBinaryFloatAtName(String parameterName, float value) |
Sets the designated parameter to a Java Float value.
|
void |
setBinaryFloatAtName(String parameterName, BINARY_FLOAT value) |
Sets the designated parameter to an oracle.sql.BINARY_FLOAT value.
|
void |
setBinaryStreamAtName(String parameterName, InputStream stream) |
Sets the designated parameter to a Java BinaryStream value.
|
void |
setBinaryStreamAtName(String parameterName, InputStream stream, int length) |
Sets the designated parameter to a Java BinaryStream value.
|
void |
setBinaryStreamAtName(String parameterName, InputStream stream, long length) |
Sets the designated parameter to a Java BinaryStream value.
|
void |
setBLOB(int parameterIndex, BLOB lob) |
Binds the designated parameter to a
oracle.sql.BLOB value. |
void |
setBlobAtName(String parameterName, InputStream stream) |
Sets the designated parameter to a stream value.
|
void |
setBlobAtName(String parameterName, InputStream stream, long length) |
Sets the designated parameter to a stream value.
|
void |
setBlobAtName(String parameterName, Blob value) |
Sets the designated parameter to a Java Blob value.
|
void |
setBLOBAtName(String parameterName, BLOB value) |
Sets the designated parameter to an oracle.sql.BLOB value.
|
void |
setBooleanAtName(String parameterName, boolean value) |
Sets the designated parameter to a Java Boolean value.
|
void |
setByteAtName(String parameterName, byte value) |
Sets the designated parameter to a Java Byte value.
|
void |
setBytesAtName(String parameterName, byte[] value) |
Sets the designated parameter to a Java Bytes value.
|
void |
setBytesForBlob(int parameterIndex, byte[] value) |
Sets the designated parameter to a Java bytes value.
|
void |
setBytesForBlobAtName(String parameterName, byte[] value) |
Sets the designated parameter to a Java byte array value.
|
void |
setCHAR(int parameterIndex, CHAR ch) |
Binds the designated parameter to a
oracle.sql.CHAR value. |
void |
setCharacterStreamAtName(String parameterName, Reader reader) |
Sets the designated parameter to a Java CharacterStream value.
|
void |
setCharacterStreamAtName(String parameterName, Reader reader, long length) |
Sets the designated parameter to a Java CharacterStream value.
|
void |
setCHARAtName(String parameterName, CHAR value) |
Sets the designated parameter to an oracle.sql.CHAR value.
|
void |
setCheckBindTypes(boolean flag) |
Enable/disable bind type checking.
|
void |
setCLOB(int parameterIndex, CLOB lob) |
Binds the designated parameter to a
oracle.sql.CLOB value. |
void |
setClobAtName(String parameterName, Reader reader) |
Sets the designated parameter to a stream value.
|
void |
setClobAtName(String parameterName, Reader reader, long length) |
Sets the designated parameter to a stream value.
|
void |
setClobAtName(String parameterName, Clob value) |
Sets the designated parameter to a Java Clob value.
|
void |
setCLOBAtName(String parameterName, CLOB value) |
Sets the designated parameter to an oracle.sql.CLOB value.
|
void |
setCursor(int parameterIndex, ResultSet rs) |
Deprecated.
|
void |
setCursorAtName(String parameterName, ResultSet value) |
Sets the designated parameter to a Java Cursor value.
|
void |
setCustomDatum(int parameterIndex, CustomDatum x) |
Deprecated.
|
void |
setCustomDatumAtName(String parameterName, CustomDatum value) |
Sets the designated parameter to a Java CustomDatum value.
|
void |
setDATE(int parameterIndex, DATE date) |
Binds the designated parameter to a
oracle.sql.DATE value. |
void |
setDateAtName(String parameterName, Date value) |
Sets the designated parameter to a Java Date value.
|
void |
setDateAtName(String parameterName, Date value, Calendar cal) |
Sets the designated parameter to a Java Date value.
|
void |
setDATEAtName(String parameterName, DATE value) |
Sets the designated parameter to an oracle.sql.DATE value.
|
void |
setDisableStmtCaching(boolean cache) |
Don't Cache this object even when the corresponding Connection is Cache Enabled.
|
void |
setDoubleAtName(String parameterName, double value) |
Sets the designated parameter to a Java Double value.
|
void |
setExecuteBatch(int batchValue) |
Deprecated.
As of 12.1 all APIs related to oracle-style statement batching are deprecated in favor of standard JDBC batching.
|
void |
setFixedCHAR(int parameterIndex, String x) |
Sets the disignated parameter to a
String and executes a non-padded comparison with a SQL CHAR. |
void |
setFixedCHARAtName(String parameterName, String value) |
Sets the designated parameter to a Java FixedCHAR value.
|
void |
setFloatAtName(String parameterName, float value) |
Sets the designated parameter to a Java Float value.
|
void |
setFormOfUse(int parameterIndex, short formOfUse) |
Specifies if the data is bound for a SQL NCHAR datatype.
|
void |
setIntAtName(String parameterName, int value) |
Sets the designated parameter to a Java Int value.
|
void |
setINTERVALDS(int parameterIndex, INTERVALDS x) |
Binds the designated parameter to an oracle.sql.INTERVALDS value.
|
void |
setINTERVALDSAtName(String parameterName, INTERVALDS value) |
Sets the designated parameter to an oracle.sql.INTERVALDS value.
|
void |
setINTERVALYM(int parameterIndex, INTERVALYM x) |
Binds the designated parameter to an oracle.sql.INTERVALYM value.
|
void |
setINTERVALYMAtName(String parameterName, INTERVALYM value) |
Sets the designated parameter to an oracle.sql.INTERVALYM value.
|
void |
setLongAtName(String parameterName, long value) |
Sets the designated parameter to a Java Long value.
|
void |
setNCharacterStreamAtName(String parameterName, Reader reader) |
Sets the designated parameter to a Java CharacterStream value using the NCHAR character set.
|
void |
setNCharacterStreamAtName(String parameterName, Reader reader, long length) |
Sets the designated parameter to a Java CharacterStream value using the NCHAR character set.
|
void |
setNClobAtName(String parameterName, Reader reader) |
Sets the designated parameter to a
java.sql.NClob value. |
void |
setNClobAtName(String parameterName, Reader reader, long length) |
Sets the designated parameter to a
java.sql.NClob value. |
void |
setNClobAtName(String parameterName, NClob value) |
Sets the designated parameter to a
java.sql.NClob value. |
void |
setNStringAtName(String parameterName, String value) |
Sets the designated parameter to a
java.sql.String value using the NCHAR character set |
void |
setNullAtName(String parameterName, int sqlType) |
Sets the designated parameter to a SQL NULL value.
|
void |
setNullAtName(String parameterName, int sqlType, String sqlName) |
Sets the designated parameter to a SQL NULL value.
|
void |
setNUMBER(int parameterIndex, NUMBER num) |
Binds the designated parameter to a
oracle.sql.NUMBER value. |
void |
setNUMBERAtName(String parameterName, NUMBER value) |
Sets the designated parameter to an
oracle.sql.NUMBER value. |
void |
setObjectAtName(String parameterName, Object value) |
Sets the designated parameter to a Java Object value.
|
void |
setObjectAtName(String parameterName, Object value, int targetSqlType) |
Sets the designated parameter to a Java Object value.
|
void |
setObjectAtName(String parameterName, Object value, int targetSqlType, int scale) |
Sets the designated parameter to a Java Object value.
|
void |
setOPAQUE(int parameterIndex, OPAQUE val) |
Binds the designated parameter to a
oracle.sql.OPAQUE value. |
void |
setOPAQUEAtName(String parameterName, OPAQUE value) |
Sets the designated parameter to an
oracle.sql.OPAQUE value. |
void |
setOracleObject(int parameterIndex, Datum x) |
Binds the designated parameter to a
oracle.sql.Datum value. |
void |
setOracleObjectAtName(String parameterName, Datum value) |
Sets the designated parameter to an
oracle.sql.Datum value. |
void |
setORAData(int parameterIndex, ORAData x) |
Binds the designated parameter to a
oracle.sql.ORAData value. |
void |
setORADataAtName(String parameterName, ORAData value) |
Sets the designated parameter to an
oracle.sql.ORAData value. |
void |
setPlsqlIndexTable(int parameterIndex, Object arrayData, int maxLen, int curLen, int elemSqlType, int elemMaxLen) |
Deprecated.
since 18.1.
|
void |
setRAW(int parameterIndex, RAW raw) |
Binds the designated parameter to a
oracle.sql.RAW value. |
void |
setRAWAtName(String parameterName, RAW value) |
Sets the designated parameter to an
oracle.sql.RAW value. |
void |
setREF(int parameterIndex, REF ref) |
Binds the designated parameter to a
oracle.sql.REF value. |
void |
setRefAtName(String parameterName, Ref value) |
Sets the designated parameter to a Java Ref value.
|
void |
setREFAtName(String parameterName, REF value) |
Sets the designated parameter to an
oracle.sql.REF value. |
void |
setRefType(int parameterIndex, REF ref) |
Binds the designated parameter to a
oracle.sql.REF value. |
void |
setRefTypeAtName(String parameterName, REF value) |
Sets the designated parameter to an
oracle.sql.REF value. |
void |
setROWID(int parameterIndex, ROWID rowid) |
Binds the designated parameter to a
oracle.sql.ROWID value. |
void |
setRowIdAtName(String parameterName, RowId value) |
Sets the designated parameter to a
java.sql.RowId value. |
void |
setROWIDAtName(String parameterName, ROWID value) |
Sets the designated parameter to an
oracle.sql.ROWID value. |
void |
setShortAtName(String parameterName, short value) |
Sets the designated parameter to a Java Short value.
|
void |
setSQLXMLAtName(String parameterName, SQLXML value) |
Sets the designated parameter to a
java.sql.SQLXML value. |
void |
setStringAtName(String parameterName, String value) |
Sets the designated parameter to a Java String value.
|
void |
setStringForClob(int parameterIndex, String value) |
Sets the designated parameter to a Java String value.
|
void |
setStringForClobAtName(String parameterName, String value) |
Sets the designated parameter to a Java String value.
|
void |
setSTRUCT(int parameterIndex, STRUCT struct) |
Binds the designated parameter to a
oracle.sql.STRUCT value. |
void |
setSTRUCTAtName(String parameterName, STRUCT value) |
Sets the designated parameter to an
oracle.sql.STRUCT value. |
void |
setStructDescriptor(int parameterIndex, StructDescriptor desc) |
Binds the bind type of designated parameter from an oracle.sql.StructDescriptor.
|
void |
setStructDescriptorAtName(String parameterName, StructDescriptor desc) |
Sets the designated parameter to an
oracle.sql.StructDescriptor value. |
void |
setTimeAtName(String parameterName, Time value) |
Sets the designated parameter to a Java Time value.
|
void |
setTimeAtName(String parameterName, Time value, Calendar cal) |
Sets the designated parameter to a Java Time value.
|
void |
setTIMESTAMP(int parameterIndex, TIMESTAMP x) |
Binds the designated parameter to an oracle.sql.TIMESTAMP value.
|
void |
setTimestampAtName(String parameterName, Timestamp value) |
Sets the designated parameter to a Java Timestamp value.
|
void |
setTimestampAtName(String parameterName, Timestamp value, Calendar cal) |
Sets the designated parameter to a Java Timestamp value.
|
void |
setTIMESTAMPAtName(String parameterName, TIMESTAMP value) |
Sets the designated parameter to an
oracle.sql.TIMESTAMP value. |
void |
setTIMESTAMPLTZ(int parameterIndex, TIMESTAMPLTZ x) |
Binds the designated parameter to an
oracle.sql.TIMESTAMPLTZ value. |
void |
setTIMESTAMPLTZAtName(String parameterName, TIMESTAMPLTZ value) |
Sets the designated parameter to an
oracle.sql.TIMESTAMPLTZ value. |
void |
setTIMESTAMPTZ(int parameterIndex, TIMESTAMPTZ x) |
Binds the designated parameter to an
oracle.sql.TIMESTAMPTZ value. |
void |
setTIMESTAMPTZAtName(String parameterName, TIMESTAMPTZ value) |
Sets the designated parameter to an
oracle.sql.TIMESTAMPTZ value. |
void |
setUnicodeStreamAtName(String parameterName, InputStream stream, int length) |
Sets the designated parameter to a Java UnicodeStream value.
|
void |
setURLAtName(String parameterName, URL value) |
Sets the designated parameter to a Java URL value.
|
clearDefines, closeOnCompletion, closeWithKey, creationState, defineColumnType, defineColumnType, defineColumnType, defineColumnType, defineColumnTypeBytes, defineColumnTypeChars, enquoteIdentifier, enquoteLiteral, enquoteNCharLiteral, getLobPrefetchSize, getRegisteredQueryId, getRegisteredTableNames, getRowPrefetch, isNCHAR, isSimpleIdentifier, setDatabaseChangeRegistration, setLobPrefetchSize, setRowPrefetch
addBatch, clearParameters, execute, executeLargeUpdate, executeQuery, executeUpdate, getMetaData, getParameterMetaData, setArray, setAsciiStream, setAsciiStream, setAsciiStream, setBigDecimal, setBinaryStream, setBinaryStream, setBinaryStream, setBlob, setBlob, setBlob, setBoolean, setByte, setBytes, setCharacterStream, setCharacterStream, setCharacterStream, setClob, setClob, setClob, setDate, setDate, setDouble, setFloat, setInt, setLong, setNCharacterStream, setNCharacterStream, setNClob, setNClob, setNClob, setNString, setNull, setNull, setObject, setObject, setObject, setObject, setObject, setRef, setRowId, setShort, setSQLXML, setString, setTime, setTime, setTimestamp, setTimestamp, setUnicodeStream, setURL
addBatch, cancel, clearBatch, clearWarnings, close, execute, execute, execute, execute, executeBatch, executeLargeBatch, executeLargeUpdate, executeLargeUpdate, executeLargeUpdate, executeLargeUpdate, executeQuery, executeUpdate, executeUpdate, executeUpdate, executeUpdate, getConnection, getFetchDirection, getFetchSize, getGeneratedKeys, getLargeMaxRows, getLargeUpdateCount, getMaxFieldSize, getMaxRows, getMoreResults, getMoreResults, getQueryTimeout, getResultSet, getResultSetConcurrency, getResultSetHoldability, getResultSetType, getUpdateCount, getWarnings, isClosed, isCloseOnCompletion, isPoolable, setCursorName, setEscapeProcessing, setFetchDirection, setFetchSize, setLargeMaxRows, setMaxFieldSize, setMaxRows, setPoolable, setQueryTimeout
isWrapperFor, unwrap
static final short FORM_NCHAR
setFormOfUse()
.static final short FORM_CHAR
setFormOfUse()
.void defineParameterTypeBytes(int param_index, int type, int max_size) throws SQLException
Similarly to defineColumnType()
. Before executing a Query you may choose to inform JDBC of the type and maximum length of the bind parameter. If not, based on the setXXX
call, the maximum length of the type is taken, i.e., for a setString a 4k buffer is allocated. This API does not reduce the network round trip. It is purely a memory optimization API.
Note: You should use OracleTypes.CHAR
as the type value if you are going bind later as setCHAR
and use OracleTypes.VARCHAR
if you are going to bind as setString
for effective results.
param_index
- Index of bind parameter (should be >=0)type
- Type to be assigned to bind parameter. This type could be different from the native type of the column. Appropriate conversions will be done.max_size
- Maximum length of bind data in bytes (should be >=0)SQLException
- if the type you specify is not availablevoid defineParameterTypeChars(int param_index, int type, int max_size) throws SQLException
Similarly to defineColumnType()
. Before executing a Query you may choose to inform JDBC of the type and maximum length of the bind parameter. If not, based on the setXXX
call, the maximum length of the type is taken, i.e., for a setString a 4k buffer is allocated. This API does not reduce the network round trip. It is purely a memory optimization API.
Note: You should use OracleTypes.CHAR
as the type value if you are going bind later as setCHAR
and use OracleTypes.VARCHAR
if you are going to bind as setString
for effective results.
param_index
- Index of bind parameter (should be >=0)type
- Type to be assigned to bind parameter. This type could be different from the native type of the column. Appropriate conversions will be done.max_size
- Maximum length of bind data in bytes (should be >=0)SQLException
- if the type you specify is not availablevoid defineParameterType(int param_index, int type, int max_size) throws SQLException
param_index
-type
-max_size
-SQLException
int getExecuteBatch()
OracleConnection.setDefaultExecuteBatch
, setExecuteBatch
int sendBatch() throws SQLException
SQLException
- never thrown.void setARRAY(int parameterIndex, ARRAY arr) throws SQLException
oracle.sql.ARRAY
.parameterIndex
- the first parameter is 1, the second is 2, ...arr
- the parameter valueSQLException
- if a database access error occursvoid setBfile(int parameterIndex, BFILE file) throws SQLException
oracle.sql.BFILE
value.
Note: This is the same as setBFILE
.
parameterIndex
- the first parameter is 1, the second is 2, ...file
- the parameter valueSQLException
- if a database access error occurssetBFILE
void setBFILE(int parameterIndex, BFILE file) throws SQLException
oracle.sql.BFILE
value.
Note: An instance of the oracle.sql.BFILE
class contains only the locator of the BFILE, not the data. Thus, this method binds the designated parameter to a BFILE locator not to the data.
For example, assume you want to insert a BFILE locator into a table, and you have an OraclePreparedStatement
object ops
to insert data into a table. The first column is a string (to designate a row number), the second column is a BFILE, and you have a valid oracle.sql.BFILE
object (bfile
). Write the BFILE to the database as follows:
OraclePreparedStatement ops = (OraclePreparedStatement)conn.prepareStatement ("INSERT INTO my_bfile_table VALUES(?,?)"); ops.setString(1, "one"); ops.setBFILE(2, bfile); ops.execute();
This stores only the locator of the BFILE in the my_bfile_table
. See the BFILE
class to get more details about how to deal with the data.
parameterIndex
- the first parameter is 1, the second is 2, ...file
- the parameter valueSQLException
- if a database access error occursvoid setBLOB(int parameterIndex, BLOB lob) throws SQLException
oracle.sql.BLOB
value.
Note: An instance of the oracle.sql.BLOB
class contains only the locator of the BLOB, not the data. Thus, this method binds the designated parameter to a BLOB locator not to the data.
For example, if you have an OraclePreparedStatement
object ops
and a BLOB named my_blob
, then write the BLOB to the database as follows:
OraclePreparedStatement ops = (OraclePreparedStatement)conn.prepareStatement ("INSERT INTO blob_table VALUES(?)"); ops.setBLOB(1, my_blob); ops.execute();
This stores only the locator of the BLOB in the clob_table
. Use the method BLOB.getBinaryOutputStream
to write data to a BLOB.
parameterIndex
- the first parameter is 1, the second is 2, ...lob
- the parameter valueSQLException
- if a database access error occursvoid setCHAR(int parameterIndex, CHAR ch) throws SQLException
oracle.sql.CHAR
value.
setCHAR
checks the character set of the argument. If it is not the same as the network character set, then the bytes of the argument are converted to the network character set and those bytes are sent to the database. The conversion between the argument character set and the network character set is via the Universal Character Set (UCS2). That is, the argument is converted to UCS2, then the UCS2 bytes are converted to the network character set.
Note: If an input character does not have a representation in UCS2, or if the UCS2 does not have a representation of the network character set, setCHAR
will throw an exception.
parameterIndex
- the first parameter is 1, the second is 2, ...ch
- the parameter valueSQLException
- if a database access error occurssetFixedChar
void setCLOB(int parameterIndex, CLOB lob) throws SQLException
oracle.sql.CLOB
value.
Note: An instance of the oracle.sql.CLOB
class contains only the locator of the CLOB, not the data. Thus, this method binds the designated parameter to a CLOB locator not to the data.
For example, if you have an OraclePreparedStatement
object ops
and a CLOB named my_clob
, then write the CLOB to the database as follows:
OraclePreparedStatement ops = (OraclePreparedStatement)conn.prepareStatement ("INSERT INTO clob_table VALUES(?)"); ops.setCLOB(1, my_clob); ops.execute();
This stores only the locator of the CLOB in the clob_table
. Use the methods CLOB.getCharacterOutputStream
or CLOB.getAsciiOutputStream
to write data to a CLOB.
parameterIndex
- the first parameter is 1, the second is 2, ...lob
- the parameter valueSQLException
- if a database access error occursvoid setCursor(int parameterIndex, ResultSet rs) throws SQLException
java.sql.ResultSet
. This is used for RefCursor parameter only.
NOTE: The method is a misnomer. You should use CURSOR only in callable statements.
parameterIndex
- the first parameter is 1, the second is 2, ...rs
- the parameter valueSQLException
- if a database access error occursOracleCallableStatement.getCursor
void setCustomDatum(int parameterIndex, CustomDatum x) throws SQLException
oracle.sql.CustomDatum
value.
In the 9i release the oracle.sql.CustomDatum
has been deprecated and replaced by the oracle.sql.ORAData
interface. For this reason, this method is also deprecated. It is recommended to use setORAData()
instead.
parameterIndex
- the first parameter is 1, the second is 2, ...x
- the parameter value, should not be null.SQLException
- if a database access error occurs, or if null value is passed as x.void setORAData(int parameterIndex, ORAData x) throws SQLException
oracle.sql.ORAData
value.parameterIndex
- the first parameter is 1, the second is 2, ...x
- the parameter value, should not be null.SQLException
- if a database access error occurs, or if null value is passed as x.void setDATE(int parameterIndex, DATE date) throws SQLException
oracle.sql.DATE
value.parameterIndex
- the first parameter is 1, the second is 2, ...date
- the parameter valueSQLException
- if a database access error occursvoid setExecuteBatch(int batchValue) throws SQLException
batchValue
- batch value to be set, this is discarded.SQLException
- if batchValue
is less than 1 (never thrown).getExecuteBatch
, OracleConnection.setDefaultExecuteBatch
void setFixedCHAR(int parameterIndex, String x) throws SQLException
String
and executes a non-padded comparison with a SQL CHAR.
CHAR data in the database is padded to the column width. This leads to a limitation in using the setCHAR()
method to bind character data into the WHERE
clause of a SELECT
statement--the character data in the WHERE
clause must also be padded to the column width to produce a match in the SELECT
statement. This is especially troublesome if you do not know the column width.
setFixedCHAR()
remedies this. This method executes a non-padded comparison.
Notes:
OraclePreparedStatement
to use the setFixedCHAR()
method.The following example demonstrates the difference between the setString()
, setCHAR()
and setFixedCHAR()
methods.
// Schema is : create table my_table (col1 char(10)); // insert into my_table values ('JDBC'); PreparedStatement pstmt = conn.prepareStatement ("select count() from my_table where col1 = ?"); ResultSet rs; pstmt.setString (1, "JDBC"); // Set the Bind Value rs = pstmt.executeQuery(); // This does not match any row // ... do something with rs CHAR ch = new CHAR("JDBC ", null); ((OraclePreparedStatement)pstmt).setCHAR(1, ch); // Pad it to 10 bytes rs = pstmt.executeQuery(); // This matches one row // ... do something with rs ((OraclePreparedStatement)pstmt).setFixedCHAR(1, "JDBC"); rs = pstmt.executeQuery(); // This matches one row // ... do something with rs
parameterIndex
- index of the bind variable (first is 1)x
- the literal/variable to be bound.SQLException
- if an error occurs while bindingsetCHAR
void setNUMBER(int parameterIndex, NUMBER num) throws SQLException
oracle.sql.NUMBER
value.parameterIndex
- the first parameter is 1, the second is 2, ...num
- the parameter valueSQLException
- if a database access error occursvoid setBinaryFloat(int parameterIndex, float value) throws SQLException
Note that with the JDBC standard setFloat API the float data is converted to server internal NUMBER format before being sent to the server. In Oracle the SQL REAL, FLOAT, and DOUBLE PRECISION datatypes are NUMBER types.
The connection property SetFloatAndDoubleUseBinary causes the setFloat API to use binary conversion.
Binary conversion sent to a BINARY_FLOAT parameter is fast and bit exact. Binary conversion sent to a NUMBER parameter moves CPU load to the server but the data will be the same as NUMBER conversion on the client.
NUMBER conversion sent to a NUMBER parameter is correct and keeps the CPU load on the client. NUMBER conversion sent to a BINARY_FLOAT parameter is not bit exact and has extra CPU load on both client and server
parameterIndex
- the first parameter is 1, the second is 2, ...value
- the parameter valueSQLException
- if a database access error occursvoid setBinaryFloat(int parameterIndex, BINARY_FLOAT value) throws SQLException
parameterIndex
- the first parameter is 1, the second is 2, ...value
- the parameter valueSQLException
- if a database access error occursvoid setBinaryDouble(int parameterIndex, double value) throws SQLException
Note that with the JDBC standard setDouble API the float data is converted to server internal NUMBER format before being sent to the server. In Oracle the SQL REAL, FLOAT, and DOUBLE PRECISION datatypes are NUMBER types.
The connection property SetFloatAndDoubleUseBinary causes the setDouble API to use binary conversion.
Binary conversion sent to a BINARY_DOUBLE parameter is fast and bit exact. Binary conversion sent to a NUMBER parameter moves CPU load to the server but the data will be the same as NUMBER conversion on the client.
NUMBER conversion sent to a NUMBER parameter is correct and keeps the CPU load on the client. NUMBER conversion sent to a BINARY_DOUBLE parameter is not bit exact and has extra CPU load on both client and server
parameterIndex
- the first parameter is 1, the second is 2, ...value
- the parameter valueSQLException
- if a database access error occursvoid setBinaryDouble(int parameterIndex, BINARY_DOUBLE value) throws SQLException
parameterIndex
- the first parameter is 1, the second is 2, ...value
- the parameter valueSQLException
- if a database access error occursvoid setOPAQUE(int parameterIndex, OPAQUE val) throws SQLException
oracle.sql.OPAQUE
value.parameterIndex
- the first parameter is 1, the second is 2, ...val
- the parameter valueSQLException
- if a database access error occursvoid setOracleObject(int parameterIndex, Datum x) throws SQLException
oracle.sql.Datum
value.
This is a generic setXXX()
method for binding oracle.sql.
data into a prepared statement as an oracle.sql.Datum
object.
parameterIndex
- the first parameter is 1, the second is 2, ...x
- the parameter valueSQLException
- if a database access error occursvoid setStructDescriptor(int parameterIndex, StructDescriptor desc) throws SQLException
parameterIndex
- the first parameter is 1, the second is 2, ...desc
- the StructDescriptor to bindSQLException
- if a database access error occursvoid setRAW(int parameterIndex, RAW raw) throws SQLException
oracle.sql.RAW
value.parameterIndex
- the first parameter is 1, the second is 2, ...raw
- the parameter valueSQLException
- if a database access error occursvoid setREF(int parameterIndex, REF ref) throws SQLException
oracle.sql.REF
value.parameterIndex
- the first parameter is 1, the second is 2, ...ref
- the parameter valueSQLException
- if a database access error occursvoid setRefType(int parameterIndex, REF ref) throws SQLException
oracle.sql.REF
value.
Note: This is the same as setREF
.
parameterIndex
- the first parameter is 1, the second is 2, ...ref
- the parameter valueSQLException
- if a database access error occurssetREF
void setROWID(int parameterIndex, ROWID rowid) throws SQLException
oracle.sql.ROWID
value.parameterIndex
- the first parameter is 1, the second is 2, ...rowid
- the parameter valueSQLException
- if a database access error occursvoid setSTRUCT(int parameterIndex, STRUCT struct) throws SQLException
oracle.sql.STRUCT
value.parameterIndex
- the first parameter is 1, the second is 2, ...struct
- the parameter valueSQLException
- if a database access error occursvoid setTIMESTAMP(int parameterIndex, TIMESTAMP x) throws SQLException
parameterIndex
- specifies the parameter index. Index starts from 1.x
- specifies the parameter value.SQLException
- if an error occursvoid setTIMESTAMPTZ(int parameterIndex, TIMESTAMPTZ x) throws SQLException
oracle.sql.TIMESTAMPTZ
value.parameterIndex
- specifies the parameter index. Index starts from 1.x
- specifies the parameter value.SQLException
- if an error occursvoid setTIMESTAMPLTZ(int parameterIndex, TIMESTAMPLTZ x) throws SQLException
oracle.sql.TIMESTAMPLTZ
value.
In order to use this method, the calling program must first set the session time zone of the corresponding connection by using OracleConnection.setSessionTimeZone()
.
parameterIndex
- specifies the parameter index. Index starts from 1.x
- specifies the parameter value.SQLException
- if an error occursvoid setINTERVALYM(int parameterIndex, INTERVALYM x) throws SQLException
parameterIndex
- specifies the parameter index. Index starts from 1.x
- specifies the parameter value.SQLException
- if an error occursvoid setINTERVALDS(int parameterIndex, INTERVALDS x) throws SQLException
parameterIndex
- specifies the parameter index. Index starts from 1.x
- specifies the parameter value.SQLException
- if an error occursvoid setNullAtName(String parameterName, int sqlType, String sqlName) throws SQLException
parameterName
-sqlType
-sqlName
- the name of the SQL typeSQLException
- if a database access error occursvoid setNullAtName(String parameterName, int sqlType) throws SQLException
parameterName
-sqlType
-SQLException
- if a database access error occursvoid setBooleanAtName(String parameterName, boolean value) throws SQLException
parameterName
-value
- the parameter valueSQLException
- if a database access error occursvoid setByteAtName(String parameterName, byte value) throws SQLException
parameterName
-value
- the parameter valueSQLException
- if a database access error occursvoid setShortAtName(String parameterName, short value) throws SQLException
parameterName
-value
- the parameter valueSQLException
- if a database access error occursvoid setIntAtName(String parameterName, int value) throws SQLException
parameterName
-value
- the parameter valueSQLException
- if a database access error occursvoid setLongAtName(String parameterName, long value) throws SQLException
parameterName
-value
- the parameter valueSQLException
- if a database access error occursvoid setFloatAtName(String parameterName, float value) throws SQLException
parameterName
-value
- the parameter valueSQLException
- if a database access error occursvoid setDoubleAtName(String parameterName, double value) throws SQLException
parameterName
-value
- the parameter valueSQLException
- if a database access error occursvoid setBinaryFloatAtName(String parameterName, float value) throws SQLException
parameterName
-value
- the parameter valueSQLException
- if a database access error occursvoid setBinaryFloatAtName(String parameterName, BINARY_FLOAT value) throws SQLException
parameterName
-value
- the parameter valueSQLException
- if a database access error occursvoid setBinaryDoubleAtName(String parameterName, double value) throws SQLException
parameterName
-value
- the parameter valueSQLException
- if a database access error occursvoid setBinaryDoubleAtName(String parameterName, BINARY_DOUBLE value) throws SQLException
parameterName
-value
- the parameter valueSQLException
- if a database access error occursvoid setBigDecimalAtName(String parameterName, BigDecimal value) throws SQLException
parameterName
-value
- the parameter valueSQLException
- if a database access error occursvoid setStringAtName(String parameterName, String value) throws SQLException
parameterName
-value
- the parameter valueSQLException
- if a database access error occursvoid setStringForClob(int parameterIndex, String value) throws SQLException
parameterIndex
-value
- the parameter valueSQLException
- if a database access error occursvoid setStringForClobAtName(String parameterName, String value) throws SQLException
parameterName
-value
- the parameter valueSQLException
- if a database access error occursvoid setFixedCHARAtName(String parameterName, String value) throws SQLException
parameterName
-value
- the parameter valueSQLException
- if a database access error occursvoid setCursorAtName(String parameterName, ResultSet value) throws SQLException
parameterName
-value
- the parameter valueSQLException
- if a database access error occursvoid setROWIDAtName(String parameterName, ROWID value) throws SQLException
oracle.sql.ROWID
value.parameterName
-value
- the parameter valueSQLException
- if a database access error occursvoid setArrayAtName(String parameterName, Array value) throws SQLException
parameterName
-value
- the parameter valueSQLException
- if a database access error occursvoid setARRAYAtName(String parameterName, ARRAY value) throws SQLException
oracle.sql.ARRAY
value.parameterName
-value
- the parameter valueSQLException
- if a database access error occursvoid setOPAQUEAtName(String parameterName, OPAQUE value) throws SQLException
oracle.sql.OPAQUE
value.parameterName
-value
- the parameter valueSQLException
- if a database access error occursvoid setStructDescriptorAtName(String parameterName, StructDescriptor desc) throws SQLException
oracle.sql.StructDescriptor
value.parameterName
-desc
- the StructDescriptor to bindSQLException
- if a database access error occursvoid setSTRUCTAtName(String parameterName, STRUCT value) throws SQLException
oracle.sql.STRUCT
value.parameterName
-value
- the parameter valueSQLException
- if a database access error occursvoid setRAWAtName(String parameterName, RAW value) throws SQLException
oracle.sql.RAW
value.parameterName
-value
- the parameter valueSQLException
- if a database access error occursvoid setCHARAtName(String parameterName, CHAR value) throws SQLException
parameterName
-value
- the parameter valueSQLException
- if a database access error occursvoid setDATEAtName(String parameterName, DATE value) throws SQLException
parameterName
-value
- the parameter valueSQLException
- if a database access error occursvoid setNUMBERAtName(String parameterName, NUMBER value) throws SQLException
oracle.sql.NUMBER
value.parameterName
-value
- the parameter valueSQLException
- if a database access error occursvoid setBLOBAtName(String parameterName, BLOB value) throws SQLException
parameterName
-value
- the parameter valueSQLException
- if a database access error occursvoid setBlobAtName(String parameterName, Blob value) throws SQLException
parameterName
-value
- the parameter valueSQLException
- if a database access error occursvoid setBlobAtName(String parameterName, InputStream stream, long length) throws SQLException
parameterName
-stream
- the stream from which to read the valuelength
- the number of bytes to readSQLException
- if a database access error occursvoid setBlobAtName(String parameterName, InputStream stream) throws SQLException
parameterName
-stream
- the stream from which to read the valueSQLException
- if a database access error occursvoid setCLOBAtName(String parameterName, CLOB value) throws SQLException
parameterName
-value
- the parameter valueSQLException
- if a database access error occursvoid setClobAtName(String parameterName, Clob value) throws SQLException
parameterName
-value
- the parameter valueSQLException
- if a database access error occursvoid setClobAtName(String parameterName, Reader reader, long length) throws SQLException
parameterName
-reader
- the Reader from which to get the valuelength
- the number of bytes to readSQLException
- if a database access error occursvoid setClobAtName(String parameterName, Reader reader) throws SQLException
parameterName
-reader
- the Reader from which to get the valueSQLException
- if a database access error occursvoid setBFILEAtName(String parameterName, BFILE value) throws SQLException
oracle.sql.BFILE
value.parameterName
-value
- the parameter valueSQLException
- if a database access error occursvoid setBfileAtName(String parameterName, BFILE value) throws SQLException
oracle.sql.BFILE
value.parameterName
-value
- the parameter valueSQLException
- if a database access error occursvoid setBytesAtName(String parameterName, byte[] value) throws SQLException
parameterName
-value
- the parameter valueSQLException
- if a database access error occursvoid setBytesForBlob(int parameterIndex, byte[] value) throws SQLException
parameterIndex
-value
- the parameter valueSQLException
- if a database access error occursvoid setBytesForBlobAtName(String parameterName, byte[] value) throws SQLException
parameterName
-value
- the parameter valueSQLException
- if a database access error occursvoid setDateAtName(String parameterName, Date value) throws SQLException
parameterName
-value
- the parameter valueSQLException
- if a database access error occursvoid setDateAtName(String parameterName, Date value, Calendar cal) throws SQLException
parameterName
-value
- the parameter valuecal
- the calendar to interpret the dateSQLException
- if a database access error occursvoid setTimeAtName(String parameterName, Time value) throws SQLException
parameterName
-value
- the parameter valueSQLException
- if a database access error occursvoid setTimeAtName(String parameterName, Time value, Calendar cal) throws SQLException
parameterName
-value
- the parameter valuecal
- the Calendar to use to interpret the valueSQLException
- if a database access error occursvoid setTimestampAtName(String parameterName, Timestamp value) throws SQLException
parameterName
-value
- the parameter valueSQLException
- if a database access error occursvoid setTimestampAtName(String parameterName, Timestamp value, Calendar cal) throws SQLException
parameterName
-value
- the parameter valuecal
- the Calendar to use to interpret the dateSQLException
- if a database access error occursvoid setINTERVALYMAtName(String parameterName, INTERVALYM value) throws SQLException
parameterName
-value
- the parameter valueSQLException
- if a database access error occursvoid setINTERVALDSAtName(String parameterName, INTERVALDS value) throws SQLException
parameterName
-value
- the parameter valueSQLException
- if a database access error occursvoid setTIMESTAMPAtName(String parameterName, TIMESTAMP value) throws SQLException
oracle.sql.TIMESTAMP
value.parameterName
-value
- the parameter valueSQLException
- if a database access error occursvoid setTIMESTAMPTZAtName(String parameterName, TIMESTAMPTZ value) throws SQLException
oracle.sql.TIMESTAMPTZ
value.parameterName
-value
- the parameter valueSQLException
- if a database access error occursvoid setTIMESTAMPLTZAtName(String parameterName, TIMESTAMPLTZ value) throws SQLException
oracle.sql.TIMESTAMPLTZ
value.parameterName
-value
- the parameter valueSQLException
- if a database access error occursvoid setAsciiStreamAtName(String parameterName, InputStream stream, int length) throws SQLException
parameterName
-stream
- the stream valuelength
-SQLException
- if a database access error occursvoid setAsciiStreamAtName(String parameterName, InputStream stream, long length) throws SQLException
parameterName
-stream
- the stream valuelength
-SQLException
- if a database access error occursvoid setAsciiStreamAtName(String parameterName, InputStream stream) throws SQLException
parameterName
-stream
- the stream valueSQLException
- if a database access error occursvoid setBinaryStreamAtName(String parameterName, InputStream stream, int length) throws SQLException
parameterName
-stream
-length
-SQLException
- if a database access error occursvoid setBinaryStreamAtName(String parameterName, InputStream stream, long length) throws SQLException
parameterName
-stream
-length
-SQLException
- if a database access error occursvoid setBinaryStreamAtName(String parameterName, InputStream stream) throws SQLException
parameterName
-stream
-SQLException
- if a database access error occursvoid setCharacterStreamAtName(String parameterName, Reader reader, long length) throws SQLException
parameterName
-reader
-length
-SQLException
- if a database access error occursvoid setCharacterStreamAtName(String parameterName, Reader reader) throws SQLException
parameterName
-reader
-SQLException
- if a database access error occursvoid setUnicodeStreamAtName(String parameterName, InputStream stream, int length) throws SQLException
parameterName
-stream
-length
-SQLException
- if a database access error occursvoid setCustomDatumAtName(String parameterName, CustomDatum value) throws SQLException
parameterName
-value
- the parameter value, should not be null.SQLException
- if a database access error occurs, of if null value is passed as value.void setORADataAtName(String parameterName, ORAData value) throws SQLException
oracle.sql.ORAData
value.parameterName
-value
- the parameter value, should not be null.SQLException
- if a database access error occurs, or if null value is passed as value.void setObjectAtName(String parameterName, Object value, int targetSqlType, int scale) throws SQLException
parameterName
-value
- the parameter valuetargetSqlType
-scale
-SQLException
- if a database access error occursvoid setObjectAtName(String parameterName, Object value, int targetSqlType) throws SQLException
parameterName
-value
- the parameter valuetargetSqlType
-SQLException
- if a database access error occursvoid setRefTypeAtName(String parameterName, REF value) throws SQLException
oracle.sql.REF
value.parameterName
-value
- the parameter valueSQLException
- if a database access error occursvoid setRefAtName(String parameterName, Ref value) throws SQLException
parameterName
-value
- the parameter valueSQLException
- if a database access error occursvoid setREFAtName(String parameterName, REF value) throws SQLException
oracle.sql.REF
value.parameterName
-value
- the parameter valueSQLException
- if a database access error occursvoid setObjectAtName(String parameterName, Object value) throws SQLException
parameterName
-value
- the parameter valueSQLException
- if a database access error occursvoid setOracleObjectAtName(String parameterName, Datum value) throws SQLException
oracle.sql.Datum
value.parameterName
-value
- the parameter valueSQLException
- if a database access error occursvoid setURLAtName(String parameterName, URL value) throws SQLException
parameterName
-value
- the parameter valueSQLException
- if a database access error occursvoid setCheckBindTypes(boolean flag)
When bind type checking is disabled, the Jdbc driver does not check bind types for every execute. It is intended to be used as a performance enhancement if the user knows for fact that bind types do not change across different executions. The default is true
.
flag
- set it to false if Bind Types doesn't change@Deprecated void setPlsqlIndexTable(int parameterIndex, Object arrayData, int maxLen, int curLen, int elemSqlType, int elemMaxLen) throws SQLException
Associative Arrays were formerly called index-by-tables. In PL/SQL they are arrays of key-value pairs where the keys may be numeric or string types and the values may be any scalar type. The keys may be sparse. See the PL/SQL manual
The database only exports a limited form of this to the client where the keys must be numeric, positive and dense and the values can be only numeric or string. The lengths of the string data are limited to 32767 bytes. The number of characters depends on the character set used. See the PL/SQL manual. The JDBC-thin and JDBC-OCI drivers support 32767 bytes. The server side internal driver is limited to 16382 bytes for input.
parameterIndex
- This argument indicates the parameter position within the statement. The first parameter is 1, the second is 2, ...arrayData
- This argument is an array of values to be bound to the PL/SQL index-by table parameter. The value is of type java.lang.Object, and the value can be a Java primitive type array such as int[] or a Java object array such as BigDecimal[].maxLen
- This argument specifies the maximum table length of the index-by table bind value which defines the maximum possible curLen for batch updates. For standalone binds, maxLen should use the same value as curLen. This argument is required.curLen
- This argument specifies the actual size of the index-by table bind value in arrayData. If the curLen value is smaller than the size of arrayData, only the curLen number of table elements is passed to the database. If the curLen value is larger than the size of arrayData, the entire arrayData is sent to the database.elemSqlType
- This argument specifies the index-by table element type based on the values defined in the OracleTypes class.elemMaxLen
- This argument specifies the index-table element maximum length in case the element type is CHAR, VARCHAR, or RAW. This value is ignored for other types. A value of 0 for elemMaxLen would inidicate the driver to calculate the elemMaxLen based on the actual length of data bound. For a non zero value if the data bound is greater than elemMaxLen it is truncated.SQLException
- if a database access error occursvoid setFormOfUse(int parameterIndex, short formOfUse)
FORM_CHAR
for SQL CHAR datatypes and FORM_NCHAR
for SQL NCHAR datatypes, where FORM_CHAR
is the default. If the "form of use" is set to FORM_NCHAR
, the JDBC driver will represent the provided data in the national character set of the server.
The usage of SQL NCHAR datatypes is similar to that of the SQL CHAR (CHAR
, VARCHAR2
, and CLOB
) datatypes. JDBC uses the same classes and methods to access SQL NCHAR datatypes that are used for the corresponding SQL CHAR datatypes. Therefore, there are no separate, corresponding classes defined in the oracle.sql
package for SQL NCHAR datatypes. Likewise, there is no separate, corresponding constant defined in the oracle.jdbc.OracleTypes
class for SQL NCHAR datatypes. The only difference in usage between the two datatypes occur in a data bind situation: a JDBC program must call the setFormOfUse()
method to specify if the data is bound for a SQL NCHAR datatype.
In order to put this method in effect, you must invoke this method before setXXX()
and registerOutParameter()
for the column.
The following code shows how to access SQL NCHAR data:
// // Table TEST has the following columns: // - NUMBER // - NVARCHAR2 // - NCHAR // oracle.jdbc.OraclePreparedStatement pstmt = (oracle.jdbc.OraclePreparedStatement) conn.prepareStatement("insert into TEST values(?, ?, ?)"); // oracle.jdbc.OraclePreparedStatement.FORM_NCHAR should be used for all NCHAR, // NVARCHAR2 and NCLOB data types. pstmt.setFormOfUse(2, FORM_NCHAR); pstmt.setFormOfUse(3, FORM_NCHAR); pstmt.setInt(1, 1); // NUMBER column pstmt.setString(2, myUnicodeString1); // NVARCHAR2 column pstmt.setString(3, myUnicodeString2); // NCHAR column pstmt.execute();
parameterIndex
- index of the column in the preparedStatmentformOfUse
- use FORM_CHAR for CHAR, VARCHAR2 and CLOB data, or FORM_NCHAR for NCHAR, NVARCHAR2 and NCLOB data. FORM_CHAR is the default.void setDisableStmtCaching(boolean cache)
cache
- Set it to true, if you don't want this statement to be cached.OracleParameterMetaData OracleGetParameterMetaData() throws SQLException
PreparedStatement
object's parameters.OracleParameterMetaData
object that contains information about the number, types and properties of this PreparedStatement
object's parametersSQLException
- if a database access error occursOracleParameterMetaData
void registerReturnParameter(int paramIndex, int externalType) throws SQLException
paramIndex
- Index of return parameter (should be > 0)externalType
- Type of return parameter.registerReturnParameter(int paramIndex, int externalType, String typeName)
SQLException
- if an error occursvoid registerReturnParameter(int paramIndex, int externalType, int maxSize) throws SQLException
paramIndex
- Index of return parameter (should be > 0)externalType
- Type of return parametermaxSize
- Max bytes or chars of return parameterSQLException
- if an error occursvoid registerReturnParameter(int paramIndex, int externalType, String typeName) throws SQLException
paramIndex
- Index of return parameter (should be > 0)externalType
- Type of return parametertypeName
- The fully-qualified name of an SQL structured typeSQLException
- if an error occursResultSet getReturnResultSet() throws SQLException
SQLException
- if an error occursvoid setNCharacterStreamAtName(String parameterName, Reader reader, long length) throws SQLException
parameterName
-reader
-length
-SQLException
- if a database access error occursvoid setNCharacterStreamAtName(String parameterName, Reader reader) throws SQLException
parameterName
-reader
-SQLException
- if a database access error occursvoid setNClobAtName(String parameterName, NClob value) throws SQLException
java.sql.NClob
value.parameterName
-value
- the parameter valueSQLException
- if a database access error occursvoid setNClobAtName(String parameterName, Reader reader, long length) throws SQLException
java.sql.NClob
value.parameterName
-reader
- the Reader from which to get the valuelength
- the number of characters to readSQLException
- if a database access error occursvoid setNClobAtName(String parameterName, Reader reader) throws SQLException
java.sql.NClob
value.parameterName
-reader
- the Reader from which to get the valueSQLException
- if a database access error occursvoid setNStringAtName(String parameterName, String value) throws SQLException
java.sql.String
value using the NCHAR character setparameterName
-value
- the parameter valueSQLException
- if a database access error occursvoid setRowIdAtName(String parameterName, RowId value) throws SQLException
java.sql.RowId
value.parameterName
-value
- the parameter valueSQLException
- if a database access error occursvoid setSQLXMLAtName(String parameterName, SQLXML value) throws SQLException
java.sql.SQLXML
value.parameterName
-value
- the parameter valueSQLException
- if a database access error occurs