151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski/*
22c87ad3a45cecf9e344487cad1abfdebe79f2c7cNarayan Kamath * Copyright (C) 2014 The Android Open Source Project
35385a369cc67ab2f36ceda65b60a601c90551ae1Neil Fuller * Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved.
451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski *
651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * This code is free software; you can redistribute it and/or modify it
751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * under the terms of the GNU General Public License version 2 only, as
851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * published by the Free Software Foundation.  Oracle designates this
951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * particular file as subject to the "Classpath" exception as provided
1051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * by Oracle in the LICENSE file that accompanied this code.
1151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski *
1251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * This code is distributed in the hope that it will be useful, but WITHOUT
1351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
1451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
1551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * version 2 for more details (a copy is included in the LICENSE file that
1651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * accompanied this code).
1751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski *
1851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * You should have received a copy of the GNU General Public License version
1951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * 2 along with this work; if not, write to the Free Software Foundation,
2051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
2151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski *
2251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
2351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * or visit www.oracle.com if you need additional information or have any
2451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * questions.
2551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski */
2651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
2751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebskipackage java.sql;
2851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
2951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebskiimport java.math.BigDecimal;
3051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebskiimport java.util.Calendar;
3151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebskiimport java.io.Reader;
3251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebskiimport java.io.InputStream;
3351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
3451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski/**
3551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * The interface used to execute SQL stored procedures.  The JDBC API
3651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * provides a stored procedure SQL escape syntax that allows stored procedures
3751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * to be called in a standard way for all RDBMSs. This escape syntax has one
3851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * form that includes a result parameter and one that does not. If used, the result
3951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * parameter must be registered as an OUT parameter. The other parameters
4051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * can be used for input, output or both. Parameters are referred to
4151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * sequentially, by number, with the first parameter being 1.
4251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * <PRE>
4351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski *   {?= call &lt;procedure-name&gt;[(&lt;arg1&gt;,&lt;arg2&gt;, ...)]}
4451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski *   {call &lt;procedure-name&gt;[(&lt;arg1&gt;,&lt;arg2&gt;, ...)]}
4551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * </PRE>
4651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * <P>
4751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * IN parameter values are set using the <code>set</code> methods inherited from
4851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * {@link PreparedStatement}.  The type of all OUT parameters must be
4951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * registered prior to executing the stored procedure; their values
5051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * are retrieved after execution via the <code>get</code> methods provided here.
5151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * <P>
5251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * A <code>CallableStatement</code> can return one {@link ResultSet} object or
5351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * multiple <code>ResultSet</code> objects.  Multiple
5451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * <code>ResultSet</code> objects are handled using operations
5551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * inherited from {@link Statement}.
5651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * <P>
5751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * For maximum portability, a call's <code>ResultSet</code> objects and
5851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * update counts should be processed prior to getting the values of output
5951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * parameters.
6051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * <P>
6151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski *
6251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @see Connection#prepareCall
6351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @see ResultSet
6451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski */
6551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
6651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebskipublic interface CallableStatement extends PreparedStatement {
6751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
6851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
6951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Registers the OUT parameter in ordinal position
7051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>parameterIndex</code> to the JDBC type
7151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>sqlType</code>.  All OUT parameters must be registered
7251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * before a stored procedure is executed.
7351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <p>
7451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * The JDBC type specified by <code>sqlType</code> for an OUT
7551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter determines the Java type that must be used
7651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * in the <code>get</code> method to read the value of that parameter.
7751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <p>
7851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * If the JDBC type expected to be returned to this output parameter
7951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * is specific to this particular database, <code>sqlType</code>
8051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * should be <code>java.sql.Types.OTHER</code>.  The method
8151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * {@link #getObject} retrieves the value.
8251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
8351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterIndex the first parameter is 1, the second is 2,
8451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *        and so on
8551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param sqlType the JDBC type code defined by <code>java.sql.Types</code>.
8651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *        If the parameter is of JDBC type <code>NUMERIC</code>
8751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *        or <code>DECIMAL</code>, the version of
8851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *        <code>registerOutParameter</code> that accepts a scale value
8951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *        should be used.
9051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
9151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if the parameterIndex is not valid;
9251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * if a database access error occurs or
9351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
9451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLFeatureNotSupportedException if <code>sqlType</code> is
9551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * a <code>ARRAY</code>, <code>BLOB</code>, <code>CLOB</code>,
9651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>DATALINK</code>, <code>JAVA_OBJECT</code>, <code>NCHAR</code>,
9751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>NCLOB</code>, <code>NVARCHAR</code>, <code>LONGNVARCHAR</code>,
9851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *  <code>REF</code>, <code>ROWID</code>, <code>SQLXML</code>
9951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * or  <code>STRUCT</code> data type and the JDBC driver does not support
10051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this data type
10151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @see Types
10251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
10351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    void registerOutParameter(int parameterIndex, int sqlType)
10451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski        throws SQLException;
10551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
10651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
10751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Registers the parameter in ordinal position
10851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>parameterIndex</code> to be of JDBC type
10951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>sqlType</code>. All OUT parameters must be registered
11051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * before a stored procedure is executed.
11151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <p>
11251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * The JDBC type specified by <code>sqlType</code> for an OUT
11351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter determines the Java type that must be used
11451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * in the <code>get</code> method to read the value of that parameter.
11551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <p>
11651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * This version of <code>registerOutParameter</code> should be
11751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * used when the parameter is of JDBC type <code>NUMERIC</code>
11851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * or <code>DECIMAL</code>.
11951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
12051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterIndex the first parameter is 1, the second is 2,
12151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * and so on
12251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param sqlType the SQL type code defined by <code>java.sql.Types</code>.
12351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param scale the desired number of digits to the right of the
12451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * decimal point.  It must be greater than or equal to zero.
12551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if the parameterIndex is not valid;
12651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * if a database access error occurs or
12751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
12851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLFeatureNotSupportedException if <code>sqlType</code> is
12951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * a <code>ARRAY</code>, <code>BLOB</code>, <code>CLOB</code>,
13051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>DATALINK</code>, <code>JAVA_OBJECT</code>, <code>NCHAR</code>,
13151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>NCLOB</code>, <code>NVARCHAR</code>, <code>LONGNVARCHAR</code>,
13251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *  <code>REF</code>, <code>ROWID</code>, <code>SQLXML</code>
13351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * or  <code>STRUCT</code> data type and the JDBC driver does not support
13451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this data type
13551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @see Types
13651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
13751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    void registerOutParameter(int parameterIndex, int sqlType, int scale)
13851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski        throws SQLException;
13951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
14051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
14151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Retrieves whether the last OUT parameter read had the value of
14251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * SQL <code>NULL</code>.  Note that this method should be called only after
14351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * calling a getter method; otherwise, there is no value to use in
14451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * determining whether it is <code>null</code> or not.
14551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
14651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @return <code>true</code> if the last parameter read was SQL
14751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>NULL</code>; <code>false</code> otherwise
14851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if a database access error occurs or
14951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
15051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
15151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    boolean wasNull() throws SQLException;
15251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
15351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
15451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Retrieves the value of the designated JDBC <code>CHAR</code>,
15551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>VARCHAR</code>, or <code>LONGVARCHAR</code> parameter as a
15651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>String</code> in the Java programming language.
15751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <p>
15851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * For the fixed-length type JDBC <code>CHAR</code>,
15951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * the <code>String</code> object
16051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * returned has exactly the same value the SQL
16151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>CHAR</code> value had in the
16251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * database, including any padding added by the database.
16351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
16451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterIndex the first parameter is 1, the second is 2,
16551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * and so on
16651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @return the parameter value. If the value is SQL <code>NULL</code>,
16751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *         the result
16851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *         is <code>null</code>.
16951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if the parameterIndex is not valid;
17051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * if a database access error occurs or
17151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
17251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @see #setString
17351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
17451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    String getString(int parameterIndex) throws SQLException;
17551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
17651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
17751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Retrieves the value of the designated JDBC <code>BIT</code>
17851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * or <code>BOOLEAN</code> parameter as a
17951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>boolean</code> in the Java programming language.
18051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
18151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterIndex the first parameter is 1, the second is 2,
18251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *        and so on
18351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @return the parameter value.  If the value is SQL <code>NULL</code>,
18451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *         the result is <code>false</code>.
18551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if the parameterIndex is not valid;
18651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * if a database access error occurs or
18751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
18851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @see #setBoolean
18951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
19051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    boolean getBoolean(int parameterIndex) throws SQLException;
19151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
19251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
19351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Retrieves the value of the designated JDBC <code>TINYINT</code> parameter
19451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * as a <code>byte</code> in the Java programming language.
19551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
19651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterIndex the first parameter is 1, the second is 2,
19751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * and so on
19851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @return the parameter value.  If the value is SQL <code>NULL</code>, the result
19951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * is <code>0</code>.
20051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if the parameterIndex is not valid;
20151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * if a database access error occurs or
20251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
20351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @see #setByte
20451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
20551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    byte getByte(int parameterIndex) throws SQLException;
20651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
20751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
20851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Retrieves the value of the designated JDBC <code>SMALLINT</code> parameter
20951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * as a <code>short</code> in the Java programming language.
21051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
21151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterIndex the first parameter is 1, the second is 2,
21251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * and so on
21351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @return the parameter value.  If the value is SQL <code>NULL</code>, the result
21451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * is <code>0</code>.
21551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if the parameterIndex is not valid;
21651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * if a database access error occurs or
21751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
21851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @see #setShort
21951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
22051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    short getShort(int parameterIndex) throws SQLException;
22151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
22251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
22351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Retrieves the value of the designated JDBC <code>INTEGER</code> parameter
22451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * as an <code>int</code> in the Java programming language.
22551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
22651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterIndex the first parameter is 1, the second is 2,
22751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * and so on
22851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @return the parameter value.  If the value is SQL <code>NULL</code>, the result
22951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * is <code>0</code>.
23051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if the parameterIndex is not valid;
23151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * if a database access error occurs or
23251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
23351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @see #setInt
23451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
23551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    int getInt(int parameterIndex) throws SQLException;
23651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
23751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
23851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Retrieves the value of the designated JDBC <code>BIGINT</code> parameter
23951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * as a <code>long</code> in the Java programming language.
24051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
24151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterIndex the first parameter is 1, the second is 2,
24251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * and so on
24351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @return the parameter value.  If the value is SQL <code>NULL</code>, the result
24451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * is <code>0</code>.
24551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if the parameterIndex is not valid;
24651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * if a database access error occurs or
24751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
24851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @see #setLong
24951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
25051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    long getLong(int parameterIndex) throws SQLException;
25151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
25251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
25351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Retrieves the value of the designated JDBC <code>FLOAT</code> parameter
25451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * as a <code>float</code> in the Java programming language.
25551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
25651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterIndex the first parameter is 1, the second is 2,
25751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *        and so on
25851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @return the parameter value.  If the value is SQL <code>NULL</code>, the result
25951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *         is <code>0</code>.
26051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if the parameterIndex is not valid;
26151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * if a database access error occurs or
26251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
26351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @see #setFloat
26451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
26551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    float getFloat(int parameterIndex) throws SQLException;
26651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
26751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
26851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Retrieves the value of the designated JDBC <code>DOUBLE</code> parameter as a <code>double</code>
26951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * in the Java programming language.
27051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterIndex the first parameter is 1, the second is 2,
27151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *        and so on
27251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @return the parameter value.  If the value is SQL <code>NULL</code>, the result
27351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *         is <code>0</code>.
27451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if the parameterIndex is not valid;
27551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * if a database access error occurs or
27651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
27751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @see #setDouble
27851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
27951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    double getDouble(int parameterIndex) throws SQLException;
28051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
28151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
28251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Retrieves the value of the designated JDBC <code>NUMERIC</code> parameter as a
28351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>java.math.BigDecimal</code> object with <i>scale</i> digits to
28451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * the right of the decimal point.
28551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterIndex the first parameter is 1, the second is 2,
28651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *        and so on
28751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param scale the number of digits to the right of the decimal point
28851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @return the parameter value.  If the value is SQL <code>NULL</code>, the result
28951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *         is <code>null</code>.
29051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if the parameterIndex is not valid;
29151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * if a database access error occurs or
29251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
29351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
29451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method
29551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @deprecated use <code>getBigDecimal(int parameterIndex)</code>
29651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *             or <code>getBigDecimal(String parameterName)</code>
29751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @see #setBigDecimal
29851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
2995385a369cc67ab2f36ceda65b60a601c90551ae1Neil Fuller    @Deprecated
30051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    BigDecimal getBigDecimal(int parameterIndex, int scale)
30151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski        throws SQLException;
30251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
30351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
30451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Retrieves the value of the designated JDBC <code>BINARY</code> or
30551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>VARBINARY</code> parameter as an array of <code>byte</code>
30651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * values in the Java programming language.
30751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterIndex the first parameter is 1, the second is 2,
30851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *        and so on
30951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @return the parameter value.  If the value is SQL <code>NULL</code>, the result
31051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *         is <code>null</code>.
31151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if the parameterIndex is not valid;
31251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * if a database access error occurs or
31351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
31451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @see #setBytes
31551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
31651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    byte[] getBytes(int parameterIndex) throws SQLException;
31751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
31851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
31951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Retrieves the value of the designated JDBC <code>DATE</code> parameter as a
32051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>java.sql.Date</code> object.
32151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterIndex the first parameter is 1, the second is 2,
32251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *        and so on
32351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @return the parameter value.  If the value is SQL <code>NULL</code>, the result
32451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *         is <code>null</code>.
32551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if the parameterIndex is not valid;
32651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * if a database access error occurs or
32751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
32851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @see #setDate
32951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
33051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    java.sql.Date getDate(int parameterIndex) throws SQLException;
33151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
33251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
33351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Retrieves the value of the designated JDBC <code>TIME</code> parameter as a
33451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>java.sql.Time</code> object.
33551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
33651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterIndex the first parameter is 1, the second is 2,
33751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *        and so on
33851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @return the parameter value.  If the value is SQL <code>NULL</code>, the result
33951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *         is <code>null</code>.
34051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if the parameterIndex is not valid;
34151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * if a database access error occurs or
34251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
34351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @see #setTime
34451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
34551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    java.sql.Time getTime(int parameterIndex) throws SQLException;
34651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
34751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
34851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Retrieves the value of the designated JDBC <code>TIMESTAMP</code> parameter as a
34951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>java.sql.Timestamp</code> object.
35051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
35151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterIndex the first parameter is 1, the second is 2,
35251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *        and so on
35351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @return the parameter value.  If the value is SQL <code>NULL</code>, the result
35451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *         is <code>null</code>.
35551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if the parameterIndex is not valid;
35651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * if a database access error occurs or
35751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
35851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @see #setTimestamp
35951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
36051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    java.sql.Timestamp getTimestamp(int parameterIndex)
36151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski        throws SQLException;
36251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
36351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    //----------------------------------------------------------------------
36451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    // Advanced features:
36551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
36651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
36751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
36851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Retrieves the value of the designated parameter as an <code>Object</code>
36951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * in the Java programming language. If the value is an SQL <code>NULL</code>,
37051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * the driver returns a Java <code>null</code>.
37151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <p>
37251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * This method returns a Java object whose type corresponds to the JDBC
37351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * type that was registered for this parameter using the method
37451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>registerOutParameter</code>.  By registering the target JDBC
37551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * type as <code>java.sql.Types.OTHER</code>, this method can be used
37651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * to read database-specific abstract data types.
37751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
37851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterIndex the first parameter is 1, the second is 2,
37951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *        and so on
38051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @return A <code>java.lang.Object</code> holding the OUT parameter value
38151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if the parameterIndex is not valid;
38251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * if a database access error occurs or
38351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
38451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @see Types
38551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @see #setObject
38651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
38751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    Object getObject(int parameterIndex) throws SQLException;
38851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
38951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
39051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    //--------------------------JDBC 2.0-----------------------------
39151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
39251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
39351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Retrieves the value of the designated JDBC <code>NUMERIC</code> parameter as a
39451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>java.math.BigDecimal</code> object with as many digits to the
39551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * right of the decimal point as the value contains.
39651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterIndex the first parameter is 1, the second is 2,
39751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * and so on
39851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @return the parameter value in full precision.  If the value is
39951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * SQL <code>NULL</code>, the result is <code>null</code>.
40051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if the parameterIndex is not valid;
40151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * if a database access error occurs or
40251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
40351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @see #setBigDecimal
40451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.2
40551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
40651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    BigDecimal getBigDecimal(int parameterIndex) throws SQLException;
40751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
40851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
40951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Returns an object representing the value of OUT parameter
41051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>parameterIndex</code> and uses <code>map</code> for the custom
41151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * mapping of the parameter value.
41251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <p>
41351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * This method returns a Java object whose type corresponds to the
41451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * JDBC type that was registered for this parameter using the method
41551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>registerOutParameter</code>.  By registering the target
41651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * JDBC type as <code>java.sql.Types.OTHER</code>, this method can
41751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * be used to read database-specific abstract data types.
41851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterIndex the first parameter is 1, the second is 2, and so on
41951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param map the mapping from SQL type names to Java classes
42051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @return a <code>java.lang.Object</code> holding the OUT parameter value
42151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if the parameterIndex is not valid;
42251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * if a database access error occurs or
42351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
42451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
42551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method
42651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @see #setObject
42751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.2
42851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
42951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    Object getObject(int parameterIndex, java.util.Map<String,Class<?>> map)
43051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski        throws SQLException;
43151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
43251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
43351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Retrieves the value of the designated JDBC <code>REF(&lt;structured-type&gt;)</code>
43451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter as a {@link java.sql.Ref} object in the Java programming language.
43551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterIndex the first parameter is 1, the second is 2,
43651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * and so on
43751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @return the parameter value as a <code>Ref</code> object in the
43851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Java programming language.  If the value was SQL <code>NULL</code>, the value
43951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>null</code> is returned.
44051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if the parameterIndex is not valid;
44151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * if a database access error occurs or
44251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
44351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
44451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method
44551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.2
44651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
44751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    Ref getRef (int parameterIndex) throws SQLException;
44851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
44951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
45051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Retrieves the value of the designated JDBC <code>BLOB</code> parameter as a
45151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * {@link java.sql.Blob} object in the Java programming language.
45251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterIndex the first parameter is 1, the second is 2, and so on
45351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @return the parameter value as a <code>Blob</code> object in the
45451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Java programming language.  If the value was SQL <code>NULL</code>, the value
45551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>null</code> is returned.
45651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if the parameterIndex is not valid;
45751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * if a database access error occurs or
45851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
45951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
46051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method
46151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.2
46251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
46351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    Blob getBlob (int parameterIndex) throws SQLException;
46451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
46551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
46651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Retrieves the value of the designated JDBC <code>CLOB</code> parameter as a
46751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>java.sql.Clob</code> object in the Java programming language.
46851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterIndex the first parameter is 1, the second is 2, and
46951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * so on
47051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @return the parameter value as a <code>Clob</code> object in the
47151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Java programming language.  If the value was SQL <code>NULL</code>, the
47251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * value <code>null</code> is returned.
47351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if the parameterIndex is not valid;
47451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * if a database access error occurs or
47551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
47651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
47751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method
47851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.2
47951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
48051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    Clob getClob (int parameterIndex) throws SQLException;
48151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
48251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
48351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
48451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Retrieves the value of the designated JDBC <code>ARRAY</code> parameter as an
48551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * {@link java.sql.Array} object in the Java programming language.
48651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterIndex the first parameter is 1, the second is 2, and
48751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * so on
48851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @return the parameter value as an <code>Array</code> object in
48951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * the Java programming language.  If the value was SQL <code>NULL</code>, the
49051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * value <code>null</code> is returned.
49151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if the parameterIndex is not valid;
49251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * if a database access error occurs or
49351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
49451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
49551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method
49651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.2
49751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
49851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    Array getArray (int parameterIndex) throws SQLException;
49951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
50051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
50151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Retrieves the value of the designated JDBC <code>DATE</code> parameter as a
50251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>java.sql.Date</code> object, using
50351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * the given <code>Calendar</code> object
50451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * to construct the date.
50551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * With a <code>Calendar</code> object, the driver
50651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * can calculate the date taking into account a custom timezone and locale.
50751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * If no <code>Calendar</code> object is specified, the driver uses the
50851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * default timezone and locale.
50951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
51051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterIndex the first parameter is 1, the second is 2,
51151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * and so on
51251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param cal the <code>Calendar</code> object the driver will use
51351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *            to construct the date
51451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @return the parameter value.  If the value is SQL <code>NULL</code>, the result
51551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *         is <code>null</code>.
51651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if the parameterIndex is not valid;
51751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * if a database access error occurs or
51851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
51951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @see #setDate
52051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.2
52151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
52251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    java.sql.Date getDate(int parameterIndex, Calendar cal)
52351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski        throws SQLException;
52451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
52551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
52651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Retrieves the value of the designated JDBC <code>TIME</code> parameter as a
52751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>java.sql.Time</code> object, using
52851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * the given <code>Calendar</code> object
52951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * to construct the time.
53051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * With a <code>Calendar</code> object, the driver
53151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * can calculate the time taking into account a custom timezone and locale.
53251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * If no <code>Calendar</code> object is specified, the driver uses the
53351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * default timezone and locale.
53451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
53551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterIndex the first parameter is 1, the second is 2,
53651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * and so on
53751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param cal the <code>Calendar</code> object the driver will use
53851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *            to construct the time
53951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @return the parameter value; if the value is SQL <code>NULL</code>, the result
54051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *         is <code>null</code>.
54151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if the parameterIndex is not valid;
54251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * if a database access error occurs or
54351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
54451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @see #setTime
54551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.2
54651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
54751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    java.sql.Time getTime(int parameterIndex, Calendar cal)
54851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski        throws SQLException;
54951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
55051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
55151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Retrieves the value of the designated JDBC <code>TIMESTAMP</code> parameter as a
55251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>java.sql.Timestamp</code> object, using
55351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * the given <code>Calendar</code> object to construct
55451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * the <code>Timestamp</code> object.
55551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * With a <code>Calendar</code> object, the driver
55651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * can calculate the timestamp taking into account a custom timezone and locale.
55751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * If no <code>Calendar</code> object is specified, the driver uses the
55851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * default timezone and locale.
55951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
56051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
56151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterIndex the first parameter is 1, the second is 2,
56251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * and so on
56351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param cal the <code>Calendar</code> object the driver will use
56451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *            to construct the timestamp
56551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @return the parameter value.  If the value is SQL <code>NULL</code>, the result
56651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *         is <code>null</code>.
56751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if the parameterIndex is not valid;
56851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * if a database access error occurs or
56951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
57051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @see #setTimestamp
57151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.2
57251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
57351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    java.sql.Timestamp getTimestamp(int parameterIndex, Calendar cal)
57451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski        throws SQLException;
57551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
57651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
57751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
57851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Registers the designated output parameter.
57951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * This version of
58051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * the method <code>registerOutParameter</code>
58151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * should be used for a user-defined or <code>REF</code> output parameter.  Examples
58251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * of user-defined types include: <code>STRUCT</code>, <code>DISTINCT</code>,
58351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>JAVA_OBJECT</code>, and named array types.
58451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *<p>
58551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * All OUT parameters must be registered
58651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * before a stored procedure is executed.
58751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <p>  For a user-defined parameter, the fully-qualified SQL
58851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * type name of the parameter should also be given, while a <code>REF</code>
58951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter requires that the fully-qualified type name of the
59051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * referenced type be given.  A JDBC driver that does not need the
59151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * type code and type name information may ignore it.   To be portable,
59251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * however, applications should always provide these values for
59351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * user-defined and <code>REF</code> parameters.
59451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
59551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Although it is intended for user-defined and <code>REF</code> parameters,
59651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method may be used to register a parameter of any JDBC type.
59751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * If the parameter does not have a user-defined or <code>REF</code> type, the
59851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <i>typeName</i> parameter is ignored.
59951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
60051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <P><B>Note:</B> When reading the value of an out parameter, you
60151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * must use the getter method whose Java type corresponds to the
60251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter's registered SQL type.
60351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
60451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterIndex the first parameter is 1, the second is 2,...
60551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param sqlType a value from {@link java.sql.Types}
60651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param typeName the fully-qualified name of an SQL structured type
60751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if the parameterIndex is not valid;
60851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * if a database access error occurs or
60951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
61051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLFeatureNotSupportedException if <code>sqlType</code> is
61151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * a <code>ARRAY</code>, <code>BLOB</code>, <code>CLOB</code>,
61251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>DATALINK</code>, <code>JAVA_OBJECT</code>, <code>NCHAR</code>,
61351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>NCLOB</code>, <code>NVARCHAR</code>, <code>LONGNVARCHAR</code>,
61451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *  <code>REF</code>, <code>ROWID</code>, <code>SQLXML</code>
61551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * or  <code>STRUCT</code> data type and the JDBC driver does not support
61651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this data type
61751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @see Types
61851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.2
61951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
62051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    void registerOutParameter (int parameterIndex, int sqlType, String typeName)
62151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski        throws SQLException;
62251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
62351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski  //--------------------------JDBC 3.0-----------------------------
62451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
62551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
62651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Registers the OUT parameter named
62751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>parameterName</code> to the JDBC type
62851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>sqlType</code>.  All OUT parameters must be registered
62951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * before a stored procedure is executed.
63051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <p>
63151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * The JDBC type specified by <code>sqlType</code> for an OUT
63251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter determines the Java type that must be used
63351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * in the <code>get</code> method to read the value of that parameter.
63451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <p>
63551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * If the JDBC type expected to be returned to this output parameter
63651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * is specific to this particular database, <code>sqlType</code>
63751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * should be <code>java.sql.Types.OTHER</code>.  The method
63851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * {@link #getObject} retrieves the value.
63951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterName the name of the parameter
64051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param sqlType the JDBC type code defined by <code>java.sql.Types</code>.
64151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * If the parameter is of JDBC type <code>NUMERIC</code>
64251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * or <code>DECIMAL</code>, the version of
64351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>registerOutParameter</code> that accepts a scale value
64451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * should be used.
64551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if parameterName does not correspond to a named
64651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter; if a database access error occurs or
64751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
64851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLFeatureNotSupportedException if <code>sqlType</code> is
64951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * a <code>ARRAY</code>, <code>BLOB</code>, <code>CLOB</code>,
65051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>DATALINK</code>, <code>JAVA_OBJECT</code>, <code>NCHAR</code>,
65151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>NCLOB</code>, <code>NVARCHAR</code>, <code>LONGNVARCHAR</code>,
65251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *  <code>REF</code>, <code>ROWID</code>, <code>SQLXML</code>
65351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * or  <code>STRUCT</code> data type and the JDBC driver does not support
65451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this data type or if the JDBC driver does not support
65551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method
65651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.4
65751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @see Types
65851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
65951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    void registerOutParameter(String parameterName, int sqlType)
66051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski        throws SQLException;
66151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
66251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
66351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Registers the parameter named
66451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>parameterName</code> to be of JDBC type
66551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>sqlType</code>.  All OUT parameters must be registered
66651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * before a stored procedure is executed.
66751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <p>
66851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * The JDBC type specified by <code>sqlType</code> for an OUT
66951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter determines the Java type that must be used
67051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * in the <code>get</code> method to read the value of that parameter.
67151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <p>
67251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * This version of <code>registerOutParameter</code> should be
67351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * used when the parameter is of JDBC type <code>NUMERIC</code>
67451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * or <code>DECIMAL</code>.
67551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
67651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterName the name of the parameter
67751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param sqlType SQL type code defined by <code>java.sql.Types</code>.
67851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param scale the desired number of digits to the right of the
67951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * decimal point.  It must be greater than or equal to zero.
68051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if parameterName does not correspond to a named
68151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter; if a database access error occurs or
68251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
68351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLFeatureNotSupportedException if <code>sqlType</code> is
68451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * a <code>ARRAY</code>, <code>BLOB</code>, <code>CLOB</code>,
68551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>DATALINK</code>, <code>JAVA_OBJECT</code>, <code>NCHAR</code>,
68651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>NCLOB</code>, <code>NVARCHAR</code>, <code>LONGNVARCHAR</code>,
68751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *  <code>REF</code>, <code>ROWID</code>, <code>SQLXML</code>
68851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * or  <code>STRUCT</code> data type and the JDBC driver does not support
68951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this data type or if the JDBC driver does not support
69051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method
69151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.4
69251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @see Types
69351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
69451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    void registerOutParameter(String parameterName, int sqlType, int scale)
69551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski        throws SQLException;
69651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
69751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
69851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Registers the designated output parameter.  This version of
69951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * the method <code>registerOutParameter</code>
70051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * should be used for a user-named or REF output parameter.  Examples
70151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * of user-named types include: STRUCT, DISTINCT, JAVA_OBJECT, and
70251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * named array types.
70351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *<p>
70451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * All OUT parameters must be registered
70551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * before a stored procedure is executed.
70651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <p>
70751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * For a user-named parameter the fully-qualified SQL
70851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * type name of the parameter should also be given, while a REF
70951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter requires that the fully-qualified type name of the
71051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * referenced type be given.  A JDBC driver that does not need the
71151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * type code and type name information may ignore it.   To be portable,
71251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * however, applications should always provide these values for
71351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * user-named and REF parameters.
71451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
71551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Although it is intended for user-named and REF parameters,
71651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method may be used to register a parameter of any JDBC type.
71751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * If the parameter does not have a user-named or REF type, the
71851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * typeName parameter is ignored.
71951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
72051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <P><B>Note:</B> When reading the value of an out parameter, you
72151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * must use the <code>getXXX</code> method whose Java type XXX corresponds to the
72251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter's registered SQL type.
72351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
72451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterName the name of the parameter
72551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param sqlType a value from {@link java.sql.Types}
72651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param typeName the fully-qualified name of an SQL structured type
72751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if parameterName does not correspond to a named
72851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter; if a database access error occurs or
72951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
73051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLFeatureNotSupportedException if <code>sqlType</code> is
73151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * a <code>ARRAY</code>, <code>BLOB</code>, <code>CLOB</code>,
73251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>DATALINK</code>, <code>JAVA_OBJECT</code>, <code>NCHAR</code>,
73351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>NCLOB</code>, <code>NVARCHAR</code>, <code>LONGNVARCHAR</code>,
73451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *  <code>REF</code>, <code>ROWID</code>, <code>SQLXML</code>
73551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * or  <code>STRUCT</code> data type and the JDBC driver does not support
73651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this data type or if the JDBC driver does not support
73751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method
73851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @see Types
73951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.4
74051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
74151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    void registerOutParameter (String parameterName, int sqlType, String typeName)
74251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski        throws SQLException;
74351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
74451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
74551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Retrieves the value of the designated JDBC <code>DATALINK</code> parameter as a
74651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>java.net.URL</code> object.
74751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
74851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterIndex the first parameter is 1, the second is 2,...
74951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @return a <code>java.net.URL</code> object that represents the
75051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *         JDBC <code>DATALINK</code> value used as the designated
75151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *         parameter
75251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if the parameterIndex is not valid;
75351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * if a database access error occurs,
75451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>,
75551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *            or if the URL being returned is
75651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *            not a valid URL on the Java platform
75751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
75851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method
75951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @see #setURL
76051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.4
76151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
76251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    java.net.URL getURL(int parameterIndex) throws SQLException;
76351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
76451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
76551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Sets the designated parameter to the given <code>java.net.URL</code> object.
76651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * The driver converts this to an SQL <code>DATALINK</code> value when
76751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * it sends it to the database.
76851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
76951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterName the name of the parameter
77051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param val the parameter value
77151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if parameterName does not correspond to a named
77251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter; if a database access error occurs;
77351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
77451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *            or if a URL is malformed
77551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
77651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method
77751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @see #getURL
77851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.4
77951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
78051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    void setURL(String parameterName, java.net.URL val) throws SQLException;
78151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
78251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
78351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Sets the designated parameter to SQL <code>NULL</code>.
78451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
78551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <P><B>Note:</B> You must specify the parameter's SQL type.
78651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
78751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterName the name of the parameter
78851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param sqlType the SQL type code defined in <code>java.sql.Types</code>
78951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if parameterName does not correspond to a named
79051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter; if a database access error occurs or
79151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
79251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
79351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method
79451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.4
79551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
79651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    void setNull(String parameterName, int sqlType) throws SQLException;
79751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
79851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
79951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Sets the designated parameter to the given Java <code>boolean</code> value.
80051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * The driver converts this
80151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * to an SQL <code>BIT</code> or <code>BOOLEAN</code> value when it sends it to the database.
80251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
80351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterName the name of the parameter
80451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param x the parameter value
80551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if parameterName does not correspond to a named
80651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter; if a database access error occurs or
80751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
80851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @see #getBoolean
80951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
81051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method
81151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.4
81251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
81351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    void setBoolean(String parameterName, boolean x) throws SQLException;
81451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
81551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
81651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Sets the designated parameter to the given Java <code>byte</code> value.
81751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * The driver converts this
81851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * to an SQL <code>TINYINT</code> value when it sends it to the database.
81951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
82051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterName the name of the parameter
82151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param x the parameter value
82251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if parameterName does not correspond to a named
82351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter; if a database access error occurs or
82451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
82551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
82651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method
82751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @see #getByte
82851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.4
82951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
83051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    void setByte(String parameterName, byte x) throws SQLException;
83151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
83251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
83351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Sets the designated parameter to the given Java <code>short</code> value.
83451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * The driver converts this
83551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * to an SQL <code>SMALLINT</code> value when it sends it to the database.
83651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
83751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterName the name of the parameter
83851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param x the parameter value
83951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if parameterName does not correspond to a named
84051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter; if a database access error occurs or
84151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
84251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
84351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method
84451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @see #getShort
84551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.4
84651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
84751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    void setShort(String parameterName, short x) throws SQLException;
84851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
84951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
85051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Sets the designated parameter to the given Java <code>int</code> value.
85151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * The driver converts this
85251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * to an SQL <code>INTEGER</code> value when it sends it to the database.
85351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
85451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterName the name of the parameter
85551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param x the parameter value
85651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if parameterName does not correspond to a named
85751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter; if a database access error occurs or
85851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
85951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
86051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method
86151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @see #getInt
86251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.4
86351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
86451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    void setInt(String parameterName, int x) throws SQLException;
86551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
86651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
86751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Sets the designated parameter to the given Java <code>long</code> value.
86851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * The driver converts this
86951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * to an SQL <code>BIGINT</code> value when it sends it to the database.
87051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
87151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterName the name of the parameter
87251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param x the parameter value
87351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if parameterName does not correspond to a named
87451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter; if a database access error occurs or
87551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
87651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
87751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method
87851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @see #getLong
87951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.4
88051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
88151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    void setLong(String parameterName, long x) throws SQLException;
88251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
88351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
88451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Sets the designated parameter to the given Java <code>float</code> value.
88551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * The driver converts this
88651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * to an SQL <code>FLOAT</code> value when it sends it to the database.
88751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
88851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterName the name of the parameter
88951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param x the parameter value
89051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if parameterName does not correspond to a named
89151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter; if a database access error occurs or
89251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
89351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
89451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method
89551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @see #getFloat
89651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.4
89751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
89851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    void setFloat(String parameterName, float x) throws SQLException;
89951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
90051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
90151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Sets the designated parameter to the given Java <code>double</code> value.
90251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * The driver converts this
90351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * to an SQL <code>DOUBLE</code> value when it sends it to the database.
90451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
90551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterName the name of the parameter
90651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param x the parameter value
90751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if parameterName does not correspond to a named
90851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter; if a database access error occurs or
90951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
91051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
91151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method
91251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @see #getDouble
91351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.4
91451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
91551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    void setDouble(String parameterName, double x) throws SQLException;
91651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
91751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
91851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Sets the designated parameter to the given
91951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>java.math.BigDecimal</code> value.
92051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * The driver converts this to an SQL <code>NUMERIC</code> value when
92151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * it sends it to the database.
92251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
92351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterName the name of the parameter
92451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param x the parameter value
92551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if parameterName does not correspond to a named
92651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter; if a database access error occurs or
92751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
92851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
92951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method
93051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @see #getBigDecimal
93151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.4
93251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
93351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    void setBigDecimal(String parameterName, BigDecimal x) throws SQLException;
93451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
93551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
93651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Sets the designated parameter to the given Java <code>String</code> value.
93751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * The driver converts this
93851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * to an SQL <code>VARCHAR</code> or <code>LONGVARCHAR</code> value
93951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * (depending on the argument's
94051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * size relative to the driver's limits on <code>VARCHAR</code> values)
94151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * when it sends it to the database.
94251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
94351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterName the name of the parameter
94451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param x the parameter value
94551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if parameterName does not correspond to a named
94651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter; if a database access error occurs or
94751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
94851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
94951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method
95051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @see #getString
95151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.4
95251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
95351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    void setString(String parameterName, String x) throws SQLException;
95451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
95551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
95651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Sets the designated parameter to the given Java array of bytes.
95751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * The driver converts this to an SQL <code>VARBINARY</code> or
95851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>LONGVARBINARY</code> (depending on the argument's size relative
95951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * to the driver's limits on <code>VARBINARY</code> values) when it sends
96051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * it to the database.
96151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
96251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterName the name of the parameter
96351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param x the parameter value
96451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if parameterName does not correspond to a named
96551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter; if a database access error occurs or
96651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
96751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
96851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method
96951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @see #getBytes
97051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.4
97151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
97251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    void setBytes(String parameterName, byte x[]) throws SQLException;
97351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
97451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
97551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Sets the designated parameter to the given <code>java.sql.Date</code> value
97651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * using the default time zone of the virtual machine that is running
97751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * the application.
97851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * The driver converts this
97951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * to an SQL <code>DATE</code> value when it sends it to the database.
98051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
98151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterName the name of the parameter
98251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param x the parameter value
98351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if parameterName does not correspond to a named
98451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter; if a database access error occurs or
98551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
98651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
98751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method
98851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @see #getDate
98951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.4
99051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
99151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    void setDate(String parameterName, java.sql.Date x)
99251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski        throws SQLException;
99351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
99451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
99551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Sets the designated parameter to the given <code>java.sql.Time</code> value.
99651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * The driver converts this
99751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * to an SQL <code>TIME</code> value when it sends it to the database.
99851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
99951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterName the name of the parameter
100051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param x the parameter value
100151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if parameterName does not correspond to a named
100251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter; if a database access error occurs or
100351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
100451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
100551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method
100651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @see #getTime
100751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.4
100851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
100951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    void setTime(String parameterName, java.sql.Time x)
101051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski        throws SQLException;
101151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
101251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
101351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Sets the designated parameter to the given <code>java.sql.Timestamp</code> value.
101451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * The driver
101551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * converts this to an SQL <code>TIMESTAMP</code> value when it sends it to the
101651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * database.
101751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
101851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterName the name of the parameter
101951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param x the parameter value
102051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if parameterName does not correspond to a named
102151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter; if a database access error occurs or
102251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
102351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
102451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method
102551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @see #getTimestamp
102651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.4
102751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
102851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    void setTimestamp(String parameterName, java.sql.Timestamp x)
102951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski        throws SQLException;
103051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
103151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
103251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Sets the designated parameter to the given input stream, which will have
103351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * the specified number of bytes.
103451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * When a very large ASCII value is input to a <code>LONGVARCHAR</code>
103551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter, it may be more practical to send it via a
103651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>java.io.InputStream</code>. Data will be read from the stream
103751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * as needed until end-of-file is reached.  The JDBC driver will
103851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * do any necessary conversion from ASCII to the database char format.
103951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
104051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <P><B>Note:</B> This stream object can either be a standard
104151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Java stream object or your own subclass that implements the
104251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * standard interface.
104351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
104451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterName the name of the parameter
104551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param x the Java input stream that contains the ASCII parameter value
104651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param length the number of bytes in the stream
104751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if parameterName does not correspond to a named
104851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter; if a database access error occurs or
104951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
105051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
105151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method
105251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.4
105351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
105451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    void setAsciiStream(String parameterName, java.io.InputStream x, int length)
105551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski        throws SQLException;
105651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
105751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
105851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Sets the designated parameter to the given input stream, which will have
105951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * the specified number of bytes.
106051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * When a very large binary value is input to a <code>LONGVARBINARY</code>
106151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter, it may be more practical to send it via a
106251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>java.io.InputStream</code> object. The data will be read from the stream
106351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * as needed until end-of-file is reached.
106451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
106551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <P><B>Note:</B> This stream object can either be a standard
106651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Java stream object or your own subclass that implements the
106751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * standard interface.
106851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
106951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterName the name of the parameter
107051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param x the java input stream which contains the binary parameter value
107151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param length the number of bytes in the stream
107251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if parameterName does not correspond to a named
107351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter; if a database access error occurs or
107451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
107551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
107651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method
107751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.4
107851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
107951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    void setBinaryStream(String parameterName, java.io.InputStream x,
108051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski                         int length) throws SQLException;
108151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
108251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
108351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Sets the value of the designated parameter with the given object. The second
108451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * argument must be an object type; for integral values, the
108551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>java.lang</code> equivalent objects should be used.
108651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
108751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <p>The given Java object will be converted to the given targetSqlType
108851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * before being sent to the database.
108951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
109051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * If the object has a custom mapping (is of a class implementing the
109151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * interface <code>SQLData</code>),
109251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * the JDBC driver should call the method <code>SQLData.writeSQL</code> to write it
109351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * to the SQL data stream.
109451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * If, on the other hand, the object is of a class implementing
109551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>Ref</code>, <code>Blob</code>, <code>Clob</code>,  <code>NClob</code>,
109651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *  <code>Struct</code>, <code>java.net.URL</code>,
109751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * or <code>Array</code>, the driver should pass it to the database as a
109851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * value of the corresponding SQL type.
109951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <P>
110051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Note that this method may be used to pass datatabase-
110151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * specific abstract data types.
110251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
110351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterName the name of the parameter
110451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param x the object containing the input parameter value
110551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param targetSqlType the SQL type (as defined in java.sql.Types) to be
110651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * sent to the database. The scale argument may further qualify this type.
110751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param scale for java.sql.Types.DECIMAL or java.sql.Types.NUMERIC types,
110851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *          this is the number of digits after the decimal point.  For all other
110951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *          types, this value will be ignored.
111051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if parameterName does not correspond to a named
111151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter; if a database access error occurs or
111251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
111351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLFeatureNotSupportedException if <code>targetSqlType</code> is
111451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * a <code>ARRAY</code>, <code>BLOB</code>, <code>CLOB</code>,
111551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>DATALINK</code>, <code>JAVA_OBJECT</code>, <code>NCHAR</code>,
111651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>NCLOB</code>, <code>NVARCHAR</code>, <code>LONGNVARCHAR</code>,
111751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *  <code>REF</code>, <code>ROWID</code>, <code>SQLXML</code>
111851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * or  <code>STRUCT</code> data type and the JDBC driver does not support
111951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this data type
112051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @see Types
112151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @see #getObject
112251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.4
112351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
112451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    void setObject(String parameterName, Object x, int targetSqlType, int scale)
112551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski        throws SQLException;
112651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
112751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
112851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Sets the value of the designated parameter with the given object.
112951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * This method is like the method <code>setObject</code>
113051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * above, except that it assumes a scale of zero.
113151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
113251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterName the name of the parameter
113351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param x the object containing the input parameter value
113451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param targetSqlType the SQL type (as defined in java.sql.Types) to be
113551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *                      sent to the database
113651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if parameterName does not correspond to a named
113751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter; if a database access error occurs or
113851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
113951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLFeatureNotSupportedException if <code>targetSqlType</code> is
114051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * a <code>ARRAY</code>, <code>BLOB</code>, <code>CLOB</code>,
114151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>DATALINK</code>, <code>JAVA_OBJECT</code>, <code>NCHAR</code>,
114251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>NCLOB</code>, <code>NVARCHAR</code>, <code>LONGNVARCHAR</code>,
114351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *  <code>REF</code>, <code>ROWID</code>, <code>SQLXML</code>
114451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * or  <code>STRUCT</code> data type and the JDBC driver does not support
114551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this data type
114651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @see #getObject
114751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.4
114851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
114951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    void setObject(String parameterName, Object x, int targetSqlType)
115051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski        throws SQLException;
115151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
115251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
115351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Sets the value of the designated parameter with the given object.
115451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * The second parameter must be of type <code>Object</code>; therefore, the
115551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>java.lang</code> equivalent objects should be used for built-in types.
115651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
115751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <p>The JDBC specification specifies a standard mapping from
115851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Java <code>Object</code> types to SQL types.  The given argument
115951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * will be converted to the corresponding SQL type before being
116051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * sent to the database.
116151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <p>Note that this method may be used to pass datatabase-
116251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * specific abstract data types, by using a driver-specific Java
116351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * type.
116451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
116551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * If the object is of a class implementing the interface <code>SQLData</code>,
116651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * the JDBC driver should call the method <code>SQLData.writeSQL</code>
116751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * to write it to the SQL data stream.
116851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * If, on the other hand, the object is of a class implementing
116951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>Ref</code>, <code>Blob</code>, <code>Clob</code>,  <code>NClob</code>,
117051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *  <code>Struct</code>, <code>java.net.URL</code>,
117151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * or <code>Array</code>, the driver should pass it to the database as a
117251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * value of the corresponding SQL type.
117351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <P>
117451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * This method throws an exception if there is an ambiguity, for example, if the
117551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * object is of a class implementing more than one of the interfaces named above.
117651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *<p>
117751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *<b>Note:</b> Not all databases allow for a non-typed Null to be sent to
117851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * the backend. For maximum portability, the <code>setNull</code> or the
117951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>setObject(String parameterName, Object x, int sqlType)</code>
118051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * method should be used
118151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * instead of <code>setObject(String parameterName, Object x)</code>.
118251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *<p>
118351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterName the name of the parameter
118451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param x the object containing the input parameter value
118551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if parameterName does not correspond to a named
118651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter; if a database access error occurs,
118751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code> or if the given
118851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *            <code>Object</code> parameter is ambiguous
118951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
119051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method
119151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @see #getObject
119251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.4
119351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
119451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    void setObject(String parameterName, Object x) throws SQLException;
119551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
119651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
119751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
119851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Sets the designated parameter to the given <code>Reader</code>
119951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * object, which is the given number of characters long.
120051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * When a very large UNICODE value is input to a <code>LONGVARCHAR</code>
120151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter, it may be more practical to send it via a
120251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>java.io.Reader</code> object. The data will be read from the stream
120351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * as needed until end-of-file is reached.  The JDBC driver will
120451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * do any necessary conversion from UNICODE to the database char format.
120551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
120651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <P><B>Note:</B> This stream object can either be a standard
120751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Java stream object or your own subclass that implements the
120851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * standard interface.
120951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
121051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterName the name of the parameter
121151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param reader the <code>java.io.Reader</code> object that
121251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *        contains the UNICODE data used as the designated parameter
121351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param length the number of characters in the stream
121451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if parameterName does not correspond to a named
121551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter; if a database access error occurs or
121651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
121751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
121851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method
121951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.4
122051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
122151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    void setCharacterStream(String parameterName,
122251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski                            java.io.Reader reader,
122351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski                            int length) throws SQLException;
122451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
122551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
122651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Sets the designated parameter to the given <code>java.sql.Date</code> value,
122751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * using the given <code>Calendar</code> object.  The driver uses
122851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * the <code>Calendar</code> object to construct an SQL <code>DATE</code> value,
122951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * which the driver then sends to the database.  With a
123051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * a <code>Calendar</code> object, the driver can calculate the date
123151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * taking into account a custom timezone.  If no
123251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>Calendar</code> object is specified, the driver uses the default
123351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * timezone, which is that of the virtual machine running the application.
123451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
123551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterName the name of the parameter
123651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param x the parameter value
123751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param cal the <code>Calendar</code> object the driver will use
123851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *            to construct the date
123951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if parameterName does not correspond to a named
124051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter; if a database access error occurs or
124151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
124251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
124351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method
124451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @see #getDate
124551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.4
124651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
124751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    void setDate(String parameterName, java.sql.Date x, Calendar cal)
124851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski        throws SQLException;
124951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
125051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
125151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Sets the designated parameter to the given <code>java.sql.Time</code> value,
125251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * using the given <code>Calendar</code> object.  The driver uses
125351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * the <code>Calendar</code> object to construct an SQL <code>TIME</code> value,
125451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * which the driver then sends to the database.  With a
125551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * a <code>Calendar</code> object, the driver can calculate the time
125651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * taking into account a custom timezone.  If no
125751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>Calendar</code> object is specified, the driver uses the default
125851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * timezone, which is that of the virtual machine running the application.
125951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
126051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterName the name of the parameter
126151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param x the parameter value
126251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param cal the <code>Calendar</code> object the driver will use
126351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *            to construct the time
126451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if parameterName does not correspond to a named
126551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter; if a database access error occurs or
126651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
126751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
126851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method
126951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @see #getTime
127051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.4
127151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
127251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    void setTime(String parameterName, java.sql.Time x, Calendar cal)
127351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski        throws SQLException;
127451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
127551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
127651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Sets the designated parameter to the given <code>java.sql.Timestamp</code> value,
127751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * using the given <code>Calendar</code> object.  The driver uses
127851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * the <code>Calendar</code> object to construct an SQL <code>TIMESTAMP</code> value,
127951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * which the driver then sends to the database.  With a
128051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * a <code>Calendar</code> object, the driver can calculate the timestamp
128151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * taking into account a custom timezone.  If no
128251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>Calendar</code> object is specified, the driver uses the default
128351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * timezone, which is that of the virtual machine running the application.
128451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
128551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterName the name of the parameter
128651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param x the parameter value
128751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param cal the <code>Calendar</code> object the driver will use
128851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *            to construct the timestamp
128951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if parameterName does not correspond to a named
129051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter; if a database access error occurs or
129151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
129251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
129351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method
129451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @see #getTimestamp
129551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.4
129651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
129751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    void setTimestamp(String parameterName, java.sql.Timestamp x, Calendar cal)
129851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski        throws SQLException;
129951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
130051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
130151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Sets the designated parameter to SQL <code>NULL</code>.
130251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * This version of the method <code>setNull</code> should
130351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * be used for user-defined types and REF type parameters.  Examples
130451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * of user-defined types include: STRUCT, DISTINCT, JAVA_OBJECT, and
130551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * named array types.
130651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
130751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <P><B>Note:</B> To be portable, applications must give the
130851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * SQL type code and the fully-qualified SQL type name when specifying
130951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * a NULL user-defined or REF parameter.  In the case of a user-defined type
131051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * the name is the type name of the parameter itself.  For a REF
131151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter, the name is the type name of the referenced type.
131251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <p>
131351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Although it is intended for user-defined and Ref parameters,
131451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method may be used to set a null parameter of any JDBC type.
131551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * If the parameter does not have a user-defined or REF type, the given
131651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * typeName is ignored.
131751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
131851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
131951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterName the name of the parameter
132051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param sqlType a value from <code>java.sql.Types</code>
132151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param typeName the fully-qualified name of an SQL user-defined type;
132251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *        ignored if the parameter is not a user-defined type or
132351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *        SQL <code>REF</code> value
132451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if parameterName does not correspond to a named
132551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter; if a database access error occurs or
132651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
132751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
132851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method
132951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.4
133051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
133151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    void setNull (String parameterName, int sqlType, String typeName)
133251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski        throws SQLException;
133351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
133451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
133551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Retrieves the value of a JDBC <code>CHAR</code>, <code>VARCHAR</code>,
133651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * or <code>LONGVARCHAR</code> parameter as a <code>String</code> in
133751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * the Java programming language.
133851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <p>
133951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * For the fixed-length type JDBC <code>CHAR</code>,
134051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * the <code>String</code> object
134151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * returned has exactly the same value the SQL
134251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>CHAR</code> value had in the
134351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * database, including any padding added by the database.
134451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterName the name of the parameter
134551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @return the parameter value. If the value is SQL <code>NULL</code>, the result
134651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * is <code>null</code>.
134751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if parameterName does not correspond to a named
134851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter; if a database access error occurs or
134951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
135051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
135151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method
135251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @see #setString
135351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.4
135451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
135551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    String getString(String parameterName) throws SQLException;
135651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
135751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
135851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Retrieves the value of a JDBC <code>BIT</code> or <code>BOOLEAN</code>
135951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter as a
136051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>boolean</code> in the Java programming language.
136151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterName the name of the parameter
136251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @return the parameter value.  If the value is SQL <code>NULL</code>, the result
136351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * is <code>false</code>.
136451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if parameterName does not correspond to a named
136551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter; if a database access error occurs or
136651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
136751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
136851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method
136951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @see #setBoolean
137051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.4
137151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
137251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    boolean getBoolean(String parameterName) throws SQLException;
137351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
137451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
137551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Retrieves the value of a JDBC <code>TINYINT</code> parameter as a <code>byte</code>
137651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * in the Java programming language.
137751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterName the name of the parameter
137851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @return the parameter value.  If the value is SQL <code>NULL</code>, the result
137951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * is <code>0</code>.
138051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if parameterName does not correspond to a named
138151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter; if a database access error occurs or
138251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
138351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
138451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method
138551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @see #setByte
138651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.4
138751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
138851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    byte getByte(String parameterName) throws SQLException;
138951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
139051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
139151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Retrieves the value of a JDBC <code>SMALLINT</code> parameter as a <code>short</code>
139251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * in the Java programming language.
139351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterName the name of the parameter
139451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @return the parameter value.  If the value is SQL <code>NULL</code>, the result
139551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * is <code>0</code>.
139651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if parameterName does not correspond to a named
139751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter; if a database access error occurs or
139851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
139951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
140051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method
140151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @see #setShort
140251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.4
140351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
140451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    short getShort(String parameterName) throws SQLException;
140551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
140651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
140751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Retrieves the value of a JDBC <code>INTEGER</code> parameter as an <code>int</code>
140851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * in the Java programming language.
140951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
141051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterName the name of the parameter
141151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @return the parameter value.  If the value is SQL <code>NULL</code>,
141251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *         the result is <code>0</code>.
141351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if parameterName does not correspond to a named
141451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter; if a database access error occurs or
141551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
141651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
141751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method
141851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @see #setInt
141951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.4
142051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
142151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    int getInt(String parameterName) throws SQLException;
142251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
142351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
142451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Retrieves the value of a JDBC <code>BIGINT</code> parameter as a <code>long</code>
142551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * in the Java programming language.
142651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
142751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterName the name of the parameter
142851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @return the parameter value.  If the value is SQL <code>NULL</code>,
142951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *         the result is <code>0</code>.
143051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if parameterName does not correspond to a named
143151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter; if a database access error occurs or
143251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
143351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
143451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method
143551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @see #setLong
143651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.4
143751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
143851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    long getLong(String parameterName) throws SQLException;
143951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
144051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
144151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Retrieves the value of a JDBC <code>FLOAT</code> parameter as a <code>float</code>
144251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * in the Java programming language.
144351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterName the name of the parameter
144451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @return the parameter value.  If the value is SQL <code>NULL</code>,
144551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *         the result is <code>0</code>.
144651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if parameterName does not correspond to a named
144751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter; if a database access error occurs or
144851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
144951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
145051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method
145151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @see #setFloat
145251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.4
145351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
145451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    float getFloat(String parameterName) throws SQLException;
145551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
145651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
145751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Retrieves the value of a JDBC <code>DOUBLE</code> parameter as a <code>double</code>
145851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * in the Java programming language.
145951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterName the name of the parameter
146051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @return the parameter value.  If the value is SQL <code>NULL</code>,
146151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *         the result is <code>0</code>.
146251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if parameterName does not correspond to a named
146351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter; if a database access error occurs or
146451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
146551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
146651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method
146751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @see #setDouble
146851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.4
146951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
147051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    double getDouble(String parameterName) throws SQLException;
147151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
147251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
147351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Retrieves the value of a JDBC <code>BINARY</code> or <code>VARBINARY</code>
147451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter as an array of <code>byte</code> values in the Java
147551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * programming language.
147651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterName the name of the parameter
147751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @return the parameter value.  If the value is SQL <code>NULL</code>, the result is
147851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *  <code>null</code>.
147951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if parameterName does not correspond to a named
148051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter; if a database access error occurs or
148151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
148251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
148351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method
148451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @see #setBytes
148551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.4
148651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
148751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    byte[] getBytes(String parameterName) throws SQLException;
148851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
148951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
149051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Retrieves the value of a JDBC <code>DATE</code> parameter as a
149151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>java.sql.Date</code> object.
149251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterName the name of the parameter
149351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @return the parameter value.  If the value is SQL <code>NULL</code>, the result
149451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * is <code>null</code>.
149551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if parameterName does not correspond to a named
149651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter; if a database access error occurs or
149751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
149851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
149951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method
150051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @see #setDate
150151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.4
150251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
150351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    java.sql.Date getDate(String parameterName) throws SQLException;
150451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
150551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
150651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Retrieves the value of a JDBC <code>TIME</code> parameter as a
150751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>java.sql.Time</code> object.
150851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterName the name of the parameter
150951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @return the parameter value.  If the value is SQL <code>NULL</code>, the result
151051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * is <code>null</code>.
151151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if parameterName does not correspond to a named
151251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter; if a database access error occurs or
151351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
151451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
151551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method
151651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @see #setTime
151751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.4
151851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
151951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    java.sql.Time getTime(String parameterName) throws SQLException;
152051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
152151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
152251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Retrieves the value of a JDBC <code>TIMESTAMP</code> parameter as a
152351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>java.sql.Timestamp</code> object.
152451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterName the name of the parameter
152551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @return the parameter value.  If the value is SQL <code>NULL</code>, the result
152651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * is <code>null</code>.
152751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if parameterName does not correspond to a named
152851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter; if a database access error occurs or
152951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
153051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
153151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method
153251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @see #setTimestamp
153351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.4
153451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
153551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    java.sql.Timestamp getTimestamp(String parameterName) throws SQLException;
153651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
153751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
153851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Retrieves the value of a parameter as an <code>Object</code> in the Java
153951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * programming language. If the value is an SQL <code>NULL</code>, the
154051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * driver returns a Java <code>null</code>.
154151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <p>
154251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * This method returns a Java object whose type corresponds to the JDBC
154351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * type that was registered for this parameter using the method
154451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>registerOutParameter</code>.  By registering the target JDBC
154551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * type as <code>java.sql.Types.OTHER</code>, this method can be used
154651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * to read database-specific abstract data types.
154751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterName the name of the parameter
154851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @return A <code>java.lang.Object</code> holding the OUT parameter value.
154951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if parameterName does not correspond to a named
155051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter; if a database access error occurs or
155151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
155251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
155351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method
155451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @see Types
155551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @see #setObject
155651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.4
155751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
155851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    Object getObject(String parameterName) throws SQLException;
155951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
156051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
156151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Retrieves the value of a JDBC <code>NUMERIC</code> parameter as a
156251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>java.math.BigDecimal</code> object with as many digits to the
156351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * right of the decimal point as the value contains.
156451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterName the name of the parameter
156551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @return the parameter value in full precision.  If the value is
156651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * SQL <code>NULL</code>, the result is <code>null</code>.
156751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLExceptionif parameterName does not correspond to a named
156851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter;  if a database access error occurs or
156951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
157051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
157151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method
157251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @see #setBigDecimal
157351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.4
157451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
157551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    BigDecimal getBigDecimal(String parameterName) throws SQLException;
157651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
157751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
157851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Returns an object representing the value of OUT parameter
157951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>parameterName</code> and uses <code>map</code> for the custom
158051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * mapping of the parameter value.
158151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <p>
158251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * This method returns a Java object whose type corresponds to the
158351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * JDBC type that was registered for this parameter using the method
158451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>registerOutParameter</code>.  By registering the target
158551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * JDBC type as <code>java.sql.Types.OTHER</code>, this method can
158651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * be used to read database-specific abstract data types.
158751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterName the name of the parameter
158851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param map the mapping from SQL type names to Java classes
158951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @return a <code>java.lang.Object</code> holding the OUT parameter value
159051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if parameterName does not correspond to a named
159151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter; if a database access error occurs or
159251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
159351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
159451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method
159551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @see #setObject
159651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.4
159751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
159851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    Object getObject(String parameterName, java.util.Map<String,Class<?>> map)
159951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski      throws SQLException;
160051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
160151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
160251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Retrieves the value of a JDBC <code>REF(&lt;structured-type&gt;)</code>
160351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter as a {@link java.sql.Ref} object in the Java programming language.
160451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
160551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterName the name of the parameter
160651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @return the parameter value as a <code>Ref</code> object in the
160751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *         Java programming language.  If the value was SQL <code>NULL</code>,
160851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *         the value <code>null</code> is returned.
160951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if parameterName does not correspond to a named
161051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter; if a database access error occurs or
161151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
161251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
161351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method
161451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.4
161551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
161651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    Ref getRef (String parameterName) throws SQLException;
161751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
161851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
161951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Retrieves the value of a JDBC <code>BLOB</code> parameter as a
162051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * {@link java.sql.Blob} object in the Java programming language.
162151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
162251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterName the name of the parameter
162351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @return the parameter value as a <code>Blob</code> object in the
162451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *         Java programming language.  If the value was SQL <code>NULL</code>,
162551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *         the value <code>null</code> is returned.
162651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if parameterName does not correspond to a named
162751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter; if a database access error occurs or
162851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
162951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
163051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method
163151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.4
163251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
163351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    Blob getBlob (String parameterName) throws SQLException;
163451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
163551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
163651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Retrieves the value of a JDBC <code>CLOB</code> parameter as a
163751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>java.sql.Clob</code> object in the Java programming language.
163851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterName the name of the parameter
163951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @return the parameter value as a <code>Clob</code> object in the
164051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *         Java programming language.  If the value was SQL <code>NULL</code>,
164151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *         the value <code>null</code> is returned.
164251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if parameterName does not correspond to a named
164351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter; if a database access error occurs or
164451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
164551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
164651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method
164751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.4
164851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
164951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    Clob getClob (String parameterName) throws SQLException;
165051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
165151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
165251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Retrieves the value of a JDBC <code>ARRAY</code> parameter as an
165351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * {@link java.sql.Array} object in the Java programming language.
165451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
165551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterName the name of the parameter
165651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @return the parameter value as an <code>Array</code> object in
165751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *         Java programming language.  If the value was SQL <code>NULL</code>,
165851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *         the value <code>null</code> is returned.
165951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if parameterName does not correspond to a named
166051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter; if a database access error occurs or
166151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
166251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
166351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method
166451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.4
166551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
166651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    Array getArray (String parameterName) throws SQLException;
166751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
166851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
166951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Retrieves the value of a JDBC <code>DATE</code> parameter as a
167051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>java.sql.Date</code> object, using
167151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * the given <code>Calendar</code> object
167251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * to construct the date.
167351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * With a <code>Calendar</code> object, the driver
167451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * can calculate the date taking into account a custom timezone and locale.
167551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * If no <code>Calendar</code> object is specified, the driver uses the
167651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * default timezone and locale.
167751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
167851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterName the name of the parameter
167951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param cal the <code>Calendar</code> object the driver will use
168051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *            to construct the date
168151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @return the parameter value.  If the value is SQL <code>NULL</code>,
168251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * the result is <code>null</code>.
168351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if parameterName does not correspond to a named
168451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter; if a database access error occurs or
168551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
168651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
168751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method
168851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @see #setDate
168951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.4
169051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
169151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    java.sql.Date getDate(String parameterName, Calendar cal)
169251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski        throws SQLException;
169351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
169451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
169551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Retrieves the value of a JDBC <code>TIME</code> parameter as a
169651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>java.sql.Time</code> object, using
169751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * the given <code>Calendar</code> object
169851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * to construct the time.
169951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * With a <code>Calendar</code> object, the driver
170051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * can calculate the time taking into account a custom timezone and locale.
170151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * If no <code>Calendar</code> object is specified, the driver uses the
170251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * default timezone and locale.
170351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
170451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterName the name of the parameter
170551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param cal the <code>Calendar</code> object the driver will use
170651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *            to construct the time
170751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @return the parameter value; if the value is SQL <code>NULL</code>, the result is
170851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>null</code>.
170951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if parameterName does not correspond to a named
171051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter; if a database access error occurs or
171151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
171251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
171351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method
171451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @see #setTime
171551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.4
171651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
171751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    java.sql.Time getTime(String parameterName, Calendar cal)
171851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski        throws SQLException;
171951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
172051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
172151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Retrieves the value of a JDBC <code>TIMESTAMP</code> parameter as a
172251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>java.sql.Timestamp</code> object, using
172351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * the given <code>Calendar</code> object to construct
172451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * the <code>Timestamp</code> object.
172551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * With a <code>Calendar</code> object, the driver
172651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * can calculate the timestamp taking into account a custom timezone and locale.
172751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * If no <code>Calendar</code> object is specified, the driver uses the
172851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * default timezone and locale.
172951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
173051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
173151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterName the name of the parameter
173251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param cal the <code>Calendar</code> object the driver will use
173351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *            to construct the timestamp
173451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @return the parameter value.  If the value is SQL <code>NULL</code>, the result is
173551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>null</code>.
173651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if parameterName does not correspond to a named
173751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter; if a database access error occurs or
173851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
173951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
174051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method
174151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @see #setTimestamp
174251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.4
174351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
174451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    java.sql.Timestamp getTimestamp(String parameterName, Calendar cal)
174551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski        throws SQLException;
174651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
174751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
174851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Retrieves the value of a JDBC <code>DATALINK</code> parameter as a
174951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>java.net.URL</code> object.
175051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
175151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterName the name of the parameter
175251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @return the parameter value as a <code>java.net.URL</code> object in the
175351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Java programming language.  If the value was SQL <code>NULL</code>, the
175451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * value <code>null</code> is returned.
175551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if parameterName does not correspond to a named
175651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter; if a database access error occurs,
175751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>,
175851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *            or if there is a problem with the URL
175951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
176051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method
176151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @see #setURL
176251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.4
176351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
176451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    java.net.URL getURL(String parameterName) throws SQLException;
176551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
176651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    //------------------------- JDBC 4.0 -----------------------------------
176751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
176851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
176951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Retrieves the value of the designated JDBC <code>ROWID</code> parameter as a
177051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>java.sql.RowId</code> object.
177151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
177251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterIndex the first parameter is 1, the second is 2,...
177351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @return a <code>RowId</code> object that represents the JDBC <code>ROWID</code>
177451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *     value is used as the designated parameter. If the parameter contains
177551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * a SQL <code>NULL</code>, then a <code>null</code> value is returned.
177651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @throws SQLException if the parameterIndex is not valid;
177751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * if a database access error occurs or
177851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
177951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
178051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method
178151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.6
178251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
178351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    RowId getRowId(int parameterIndex) throws SQLException;
178451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
178551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
178651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Retrieves the value of the designated JDBC <code>ROWID</code> parameter as a
178751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>java.sql.RowId</code> object.
178851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
178951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterName the name of the parameter
179051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @return a <code>RowId</code> object that represents the JDBC <code>ROWID</code>
179151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *     value is used as the designated parameter. If the parameter contains
179251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * a SQL <code>NULL</code>, then a <code>null</code> value is returned.
179351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @throws SQLException if parameterName does not correspond to a named
179451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter; if a database access error occurs or
179551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
179651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
179751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method
179851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.6
179951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
180051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    RowId getRowId(String parameterName) throws SQLException;
180151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
180251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     /**
180351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Sets the designated parameter to the given <code>java.sql.RowId</code> object. The
180451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * driver converts this to a SQL <code>ROWID</code> when it sends it to the
180551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * database.
180651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
180751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterName the name of the parameter
180851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param x the parameter value
180951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @throws SQLException if parameterName does not correspond to a named
181051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter; if a database access error occurs or
181151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
181251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
181351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method
181451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.6
181551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
181651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    void setRowId(String parameterName, RowId x) throws SQLException;
181751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
181851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
181951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Sets the designated parameter to the given <code>String</code> object.
182051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * The driver converts this to a SQL <code>NCHAR</code> or
182151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>NVARCHAR</code> or <code>LONGNVARCHAR</code>
182251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterName the name of the parameter to be set
182351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param value the parameter value
182451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @throws SQLException if parameterName does not correspond to a named
182551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter; if the driver does not support national
182651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *         character sets;  if the driver can detect that a data conversion
182751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *  error could occur; if a database access error occurs or
182851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
182951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
183051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method
183151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.6
183251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
183351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    void setNString(String parameterName, String value)
183451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski            throws SQLException;
183551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
183651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
183751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Sets the designated parameter to a <code>Reader</code> object. The
183851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>Reader</code> reads the data till end-of-file is reached. The
183951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * driver does the necessary conversion from Java character format to
184051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * the national character set in the database.
184151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterName the name of the parameter to be set
184251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param value the parameter value
184351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param length the number of characters in the parameter data.
184451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @throws SQLException if parameterName does not correspond to a named
184551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter; if the driver does not support national
184651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *         character sets;  if the driver can detect that a data conversion
184751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *  error could occur; if a database access error occurs or
184851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
184951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
185051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method
185151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.6
185251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
185351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    void setNCharacterStream(String parameterName, Reader value, long length)
185451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski            throws SQLException;
185551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
185651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     /**
185751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Sets the designated parameter to a <code>java.sql.NClob</code> object. The object
185851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * implements the <code>java.sql.NClob</code> interface. This <code>NClob</code>
185951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * object maps to a SQL <code>NCLOB</code>.
186051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterName the name of the parameter to be set
186151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param value the parameter value
186251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @throws SQLException if parameterName does not correspond to a named
186351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter; if the driver does not support national
186451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *         character sets;  if the driver can detect that a data conversion
186551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *  error could occur; if a database access error occurs or
186651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
186751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
186851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method
186951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.6
187051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
187151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     void setNClob(String parameterName, NClob value) throws SQLException;
187251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
187351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
187451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Sets the designated parameter to a <code>Reader</code> object.  The <code>reader</code> must contain  the number
187551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * of characters specified by length otherwise a <code>SQLException</code> will be
187651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * generated when the <code>CallableStatement</code> is executed.
187751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * This method differs from the <code>setCharacterStream (int, Reader, int)</code> method
187851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * because it informs the driver that the parameter value should be sent to
187951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * the server as a <code>CLOB</code>.  When the <code>setCharacterStream</code> method is used, the
188051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * driver may have to do extra work to determine whether the parameter
188151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * data should be send to the server as a <code>LONGVARCHAR</code> or a <code>CLOB</code>
188251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterName the name of the parameter to be set
188351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param reader An object that contains the data to set the parameter value to.
188451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param length the number of characters in the parameter data.
188551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @throws SQLException if parameterName does not correspond to a named
188651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter; if the length specified is less than zero;
188751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * a database access error occurs or
188851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
188951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
189051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method
189151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
189251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.6
189351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
189451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     void setClob(String parameterName, Reader reader, long length)
189551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski       throws SQLException;
189651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
189751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
189851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Sets the designated parameter to a <code>InputStream</code> object.  The <code>inputstream</code> must contain  the number
189951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * of characters specified by length, otherwise a <code>SQLException</code> will be
190051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * generated when the <code>CallableStatement</code> is executed.
190151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * This method differs from the <code>setBinaryStream (int, InputStream, int)</code>
190251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * method because it informs the driver that the parameter value should be
190351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * sent to the server as a <code>BLOB</code>.  When the <code>setBinaryStream</code> method is used,
190451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * the driver may have to do extra work to determine whether the parameter
190551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * data should be sent to the server as a <code>LONGVARBINARY</code> or a <code>BLOB</code>
190651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
190751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterName the name of the parameter to be set
190851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * the second is 2, ...
190951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
191051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param inputStream An object that contains the data to set the parameter
191151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * value to.
191251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param length the number of bytes in the parameter data.
191351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @throws SQLException  if parameterName does not correspond to a named
191451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter; if the length specified
191551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * is less than zero; if the number of bytes in the inputstream does not match
191651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * the specfied length; if a database access error occurs or
191751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
191851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
191951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method
192051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
192151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.6
192251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
192351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     void setBlob(String parameterName, InputStream inputStream, long length)
192451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski        throws SQLException;
192551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
192651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Sets the designated parameter to a <code>Reader</code> object.  The <code>reader</code> must contain  the number
192751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * of characters specified by length otherwise a <code>SQLException</code> will be
192851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * generated when the <code>CallableStatement</code> is executed.
192951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * This method differs from the <code>setCharacterStream (int, Reader, int)</code> method
193051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * because it informs the driver that the parameter value should be sent to
193151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * the server as a <code>NCLOB</code>.  When the <code>setCharacterStream</code> method is used, the
193251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * driver may have to do extra work to determine whether the parameter
193351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * data should be send to the server as a <code>LONGNVARCHAR</code> or a <code>NCLOB</code>
193451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
193551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterName the name of the parameter to be set
193651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param reader An object that contains the data to set the parameter value to.
193751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param length the number of characters in the parameter data.
193851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @throws SQLException if parameterName does not correspond to a named
193951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter; if the length specified is less than zero;
194051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * if the driver does not support national
194151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *         character sets;  if the driver can detect that a data conversion
194251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *  error could occur; if a database access error occurs or
194351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
194451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
194551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method
194651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.6
194751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
194851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     void setNClob(String parameterName, Reader reader, long length)
194951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski       throws SQLException;
195051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
195151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
195251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Retrieves the value of the designated JDBC <code>NCLOB</code> parameter as a
195351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>java.sql.NClob</code> object in the Java programming language.
195451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
195551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterIndex the first parameter is 1, the second is 2, and
195651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * so on
195751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @return the parameter value as a <code>NClob</code> object in the
195851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Java programming language.  If the value was SQL <code>NULL</code>, the
195951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * value <code>null</code> is returned.
196051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if the parameterIndex is not valid;
196151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * if the driver does not support national
196251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *         character sets;  if the driver can detect that a data conversion
196351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *  error could occur; if a database access error occurs or
196451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
196551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
196651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method
196751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.6
196851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
196951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    NClob getNClob (int parameterIndex) throws SQLException;
197051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
197151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
197251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
197351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Retrieves the value of a JDBC <code>NCLOB</code> parameter as a
197451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>java.sql.NClob</code> object in the Java programming language.
197551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterName the name of the parameter
197651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @return the parameter value as a <code>NClob</code> object in the
197751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *         Java programming language.  If the value was SQL <code>NULL</code>,
197851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *         the value <code>null</code> is returned.
197951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if parameterName does not correspond to a named
198051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter; if the driver does not support national
198151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *         character sets;  if the driver can detect that a data conversion
198251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *  error could occur; if a database access error occurs or
198351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
198451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
198551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method
198651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.6
198751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
198851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    NClob getNClob (String parameterName) throws SQLException;
198951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
199051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
199151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Sets the designated parameter to the given <code>java.sql.SQLXML</code> object. The driver converts this to an
199251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>SQL XML</code> value when it sends it to the database.
199351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
199451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterName the name of the parameter
199551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param xmlObject a <code>SQLXML</code> object that maps an <code>SQL XML</code> value
199651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @throws SQLException if parameterName does not correspond to a named
199751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter; if a database access error occurs;
199851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code> or
199951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * the <code>java.xml.transform.Result</code>,
200051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski   *  <code>Writer</code> or <code>OutputStream</code> has not been closed for the <code>SQLXML</code> object
200151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
200251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method
200351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
200451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.6
200551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
200651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    void setSQLXML(String parameterName, SQLXML xmlObject) throws SQLException;
200751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
200851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
200951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Retrieves the value of the designated <code>SQL XML</code> parameter as a
201051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>java.sql.SQLXML</code> object in the Java programming language.
201151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterIndex index of the first parameter is 1, the second is 2, ...
201251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @return a <code>SQLXML</code> object that maps an <code>SQL XML</code> value
201351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @throws SQLException if the parameterIndex is not valid;
201451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * if a database access error occurs or
201551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
201651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
201751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method
201851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.6
201951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
202051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    SQLXML getSQLXML(int parameterIndex) throws SQLException;
202151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
202251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
202351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Retrieves the value of the designated <code>SQL XML</code> parameter as a
202451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>java.sql.SQLXML</code> object in the Java programming language.
202551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterName the name of the parameter
202651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @return a <code>SQLXML</code> object that maps an <code>SQL XML</code> value
202751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @throws SQLException if parameterName does not correspond to a named
202851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter; if a database access error occurs or
202951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
203051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
203151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method
203251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.6
203351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
203451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    SQLXML getSQLXML(String parameterName) throws SQLException;
203551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
203651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
203751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Retrieves the value of the designated <code>NCHAR</code>,
203851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>NVARCHAR</code>
203951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * or <code>LONGNVARCHAR</code> parameter as
204051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * a <code>String</code> in the Java programming language.
204151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *  <p>
204251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * For the fixed-length type JDBC <code>NCHAR</code>,
204351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * the <code>String</code> object
204451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * returned has exactly the same value the SQL
204551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>NCHAR</code> value had in the
204651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * database, including any padding added by the database.
204751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
204851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterIndex index of the first parameter is 1, the second is 2, ...
204951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @return a <code>String</code> object that maps an
205051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>NCHAR</code>, <code>NVARCHAR</code> or <code>LONGNVARCHAR</code> value
205151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if the parameterIndex is not valid;
205251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * if a database access error occurs or
205351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
205451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
205551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method
205651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.6
205751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @see #setNString
205851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
205951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    String getNString(int parameterIndex) throws SQLException;
206051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
206151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
206251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
206351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *  Retrieves the value of the designated <code>NCHAR</code>,
206451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>NVARCHAR</code>
206551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * or <code>LONGNVARCHAR</code> parameter as
206651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * a <code>String</code> in the Java programming language.
206751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <p>
206851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * For the fixed-length type JDBC <code>NCHAR</code>,
206951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * the <code>String</code> object
207051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * returned has exactly the same value the SQL
207151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>NCHAR</code> value had in the
207251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * database, including any padding added by the database.
207351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
207451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterName the name of the parameter
207551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @return a <code>String</code> object that maps an
207651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>NCHAR</code>, <code>NVARCHAR</code> or <code>LONGNVARCHAR</code> value
207751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if parameterName does not correspond to a named
207851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter;
207951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * if a database access error occurs or
208051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
208151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
208251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method
208351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.6
208451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @see #setNString
208551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
208651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    String getNString(String parameterName) throws SQLException;
208751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
208851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
208951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Retrieves the value of the designated parameter as a
209051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>java.io.Reader</code> object in the Java programming language.
209151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * It is intended for use when
209251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * accessing  <code>NCHAR</code>,<code>NVARCHAR</code>
209351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * and <code>LONGNVARCHAR</code> parameters.
209451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
209551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @return a <code>java.io.Reader</code> object that contains the parameter
209651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * value; if the value is SQL <code>NULL</code>, the value returned is
209751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>null</code> in the Java programming language.
209851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterIndex the first parameter is 1, the second is 2, ...
209951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if the parameterIndex is not valid;
210051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * if a database access error occurs or
210151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
210251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
210351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method
210451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.6
210551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
210651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    java.io.Reader getNCharacterStream(int parameterIndex) throws SQLException;
210751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
210851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
210951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Retrieves the value of the designated parameter as a
211051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>java.io.Reader</code> object in the Java programming language.
211151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * It is intended for use when
211251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * accessing  <code>NCHAR</code>,<code>NVARCHAR</code>
211351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * and <code>LONGNVARCHAR</code> parameters.
211451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
211551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterName the name of the parameter
211651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @return a <code>java.io.Reader</code> object that contains the parameter
211751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * value; if the value is SQL <code>NULL</code>, the value returned is
211851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>null</code> in the Java programming language
211951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if parameterName does not correspond to a named
212051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter; if a database access error occurs or
212151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
212251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
212351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method
212451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.6
212551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
212651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    java.io.Reader getNCharacterStream(String parameterName) throws SQLException;
212751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
212851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
212951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Retrieves the value of the designated parameter as a
213051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>java.io.Reader</code> object in the Java programming language.
213151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
213251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @return a <code>java.io.Reader</code> object that contains the parameter
213351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * value; if the value is SQL <code>NULL</code>, the value returned is
213451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>null</code> in the Java programming language.
213551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterIndex the first parameter is 1, the second is 2, ...
213651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if the parameterIndex is not valid; if a database access error occurs or
213751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
213851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.6
213951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
214051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    java.io.Reader getCharacterStream(int parameterIndex) throws SQLException;
214151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
214251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
214351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Retrieves the value of the designated parameter as a
214451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>java.io.Reader</code> object in the Java programming language.
214551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
214651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterName the name of the parameter
214751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @return a <code>java.io.Reader</code> object that contains the parameter
214851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * value; if the value is SQL <code>NULL</code>, the value returned is
214951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>null</code> in the Java programming language
215051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if parameterName does not correspond to a named
215151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter; if a database access error occurs or
215251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
215351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
215451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method
215551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.6
215651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
215751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    java.io.Reader getCharacterStream(String parameterName) throws SQLException;
215851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
215951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
216051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Sets the designated parameter to the given <code>java.sql.Blob</code> object.
216151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * The driver converts this to an SQL <code>BLOB</code> value when it
216251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * sends it to the database.
216351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
216451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterName the name of the parameter
216551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param x a <code>Blob</code> object that maps an SQL <code>BLOB</code> value
216651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if parameterName does not correspond to a named
216751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter; if a database access error occurs or
216851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
216951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
217051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method
217151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.6
217251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
217351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    void setBlob (String parameterName, Blob x) throws SQLException;
217451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
217551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
217651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Sets the designated parameter to the given <code>java.sql.Clob</code> object.
217751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * The driver converts this to an SQL <code>CLOB</code> value when it
217851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * sends it to the database.
217951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
218051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterName the name of the parameter
218151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param x a <code>Clob</code> object that maps an SQL <code>CLOB</code> value
218251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if parameterName does not correspond to a named
218351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter; if a database access error occurs or
218451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
218551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
218651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method
218751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.6
218851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
218951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    void setClob (String parameterName, Clob x) throws SQLException;
219051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
219151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Sets the designated parameter to the given input stream, which will have
219251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * the specified number of bytes.
219351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * When a very large ASCII value is input to a <code>LONGVARCHAR</code>
219451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter, it may be more practical to send it via a
219551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>java.io.InputStream</code>. Data will be read from the stream
219651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * as needed until end-of-file is reached.  The JDBC driver will
219751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * do any necessary conversion from ASCII to the database char format.
219851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
219951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <P><B>Note:</B> This stream object can either be a standard
220051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Java stream object or your own subclass that implements the
220151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * standard interface.
220251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
220351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterName the name of the parameter
220451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param x the Java input stream that contains the ASCII parameter value
220551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param length the number of bytes in the stream
220651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if parameterName does not correspond to a named
220751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter; if a database access error occurs or
220851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
220951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
221051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method
221151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.6
221251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
221351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    void setAsciiStream(String parameterName, java.io.InputStream x, long length)
221451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski        throws SQLException;
221551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
221651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
221751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Sets the designated parameter to the given input stream, which will have
221851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * the specified number of bytes.
221951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * When a very large binary value is input to a <code>LONGVARBINARY</code>
222051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter, it may be more practical to send it via a
222151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>java.io.InputStream</code> object. The data will be read from the stream
222251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * as needed until end-of-file is reached.
222351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
222451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <P><B>Note:</B> This stream object can either be a standard
222551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Java stream object or your own subclass that implements the
222651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * standard interface.
222751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
222851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterName the name of the parameter
222951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param x the java input stream which contains the binary parameter value
223051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param length the number of bytes in the stream
223151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if parameterName does not correspond to a named
223251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter; if a database access error occurs or
223351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
223451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
223551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method
223651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.6
223751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
223851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    void setBinaryStream(String parameterName, java.io.InputStream x,
223951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski                         long length) throws SQLException;
224051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski        /**
224151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Sets the designated parameter to the given <code>Reader</code>
224251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * object, which is the given number of characters long.
224351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * When a very large UNICODE value is input to a <code>LONGVARCHAR</code>
224451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter, it may be more practical to send it via a
224551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>java.io.Reader</code> object. The data will be read from the stream
224651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * as needed until end-of-file is reached.  The JDBC driver will
224751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * do any necessary conversion from UNICODE to the database char format.
224851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
224951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <P><B>Note:</B> This stream object can either be a standard
225051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Java stream object or your own subclass that implements the
225151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * standard interface.
225251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
225351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterName the name of the parameter
225451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param reader the <code>java.io.Reader</code> object that
225551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *        contains the UNICODE data used as the designated parameter
225651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param length the number of characters in the stream
225751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if parameterName does not correspond to a named
225851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter; if a database access error occurs or
225951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
226051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
226151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method
226251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.6
226351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
226451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    void setCharacterStream(String parameterName,
226551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski                            java.io.Reader reader,
226651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski                            long length) throws SQLException;
226751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     //--
226851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
226951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Sets the designated parameter to the given input stream.
227051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * When a very large ASCII value is input to a <code>LONGVARCHAR</code>
227151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter, it may be more practical to send it via a
227251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>java.io.InputStream</code>. Data will be read from the stream
227351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * as needed until end-of-file is reached.  The JDBC driver will
227451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * do any necessary conversion from ASCII to the database char format.
227551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
227651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <P><B>Note:</B> This stream object can either be a standard
227751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Java stream object or your own subclass that implements the
227851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * standard interface.
227951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <P><B>Note:</B> Consult your JDBC driver documentation to determine if
228051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * it might be more efficient to use a version of
228151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>setAsciiStream</code> which takes a length parameter.
228251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
228351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterName the name of the parameter
228451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param x the Java input stream that contains the ASCII parameter value
228551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if parameterName does not correspond to a named
228651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter; if a database access error occurs or
228751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
228851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @throws SQLFeatureNotSupportedException  if the JDBC driver does not support this method
228951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski       * @since 1.6
229051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    */
229151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    void setAsciiStream(String parameterName, java.io.InputStream x)
229251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski            throws SQLException;
229351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
229451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Sets the designated parameter to the given input stream.
229551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * When a very large binary value is input to a <code>LONGVARBINARY</code>
229651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter, it may be more practical to send it via a
229751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>java.io.InputStream</code> object. The data will be read from the
229851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * stream as needed until end-of-file is reached.
229951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
230051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <P><B>Note:</B> This stream object can either be a standard
230151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Java stream object or your own subclass that implements the
230251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * standard interface.
230351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <P><B>Note:</B> Consult your JDBC driver documentation to determine if
230451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * it might be more efficient to use a version of
230551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>setBinaryStream</code> which takes a length parameter.
230651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
230751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterName the name of the parameter
230851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param x the java input stream which contains the binary parameter value
230951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if parameterName does not correspond to a named
231051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter; if a database access error occurs or
231151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
231251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @throws SQLFeatureNotSupportedException  if the JDBC driver does not support this method
231351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.6
231451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
231551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    void setBinaryStream(String parameterName, java.io.InputStream x)
231651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    throws SQLException;
231751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
231851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Sets the designated parameter to the given <code>Reader</code>
231951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * object.
232051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * When a very large UNICODE value is input to a <code>LONGVARCHAR</code>
232151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter, it may be more practical to send it via a
232251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>java.io.Reader</code> object. The data will be read from the stream
232351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * as needed until end-of-file is reached.  The JDBC driver will
232451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * do any necessary conversion from UNICODE to the database char format.
232551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
232651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <P><B>Note:</B> This stream object can either be a standard
232751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Java stream object or your own subclass that implements the
232851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * standard interface.
232951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <P><B>Note:</B> Consult your JDBC driver documentation to determine if
233051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * it might be more efficient to use a version of
233151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>setCharacterStream</code> which takes a length parameter.
233251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
233351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterName the name of the parameter
233451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param reader the <code>java.io.Reader</code> object that contains the
233551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *        Unicode data
233651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @exception SQLException if parameterName does not correspond to a named
233751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter; if a database access error occurs or
233851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
233951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @throws SQLFeatureNotSupportedException  if the JDBC driver does not support this method
234051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.6
234151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
234251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    void setCharacterStream(String parameterName,
234351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski                          java.io.Reader reader) throws SQLException;
234451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski  /**
234551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Sets the designated parameter to a <code>Reader</code> object. The
234651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>Reader</code> reads the data till end-of-file is reached. The
234751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * driver does the necessary conversion from Java character format to
234851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * the national character set in the database.
234951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
235051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <P><B>Note:</B> This stream object can either be a standard
235151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Java stream object or your own subclass that implements the
235251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * standard interface.
235351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <P><B>Note:</B> Consult your JDBC driver documentation to determine if
235451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * it might be more efficient to use a version of
235551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>setNCharacterStream</code> which takes a length parameter.
235651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
235751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterName the name of the parameter
235851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param value the parameter value
235951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @throws SQLException if parameterName does not correspond to a named
236051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter; if the driver does not support national
236151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *         character sets;  if the driver can detect that a data conversion
236251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *  error could occur; if a database access error occurs; or
236351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
236451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @throws SQLFeatureNotSupportedException  if the JDBC driver does not support this method
236551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.6
236651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
236751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     void setNCharacterStream(String parameterName, Reader value) throws SQLException;
236851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
236951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
237051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Sets the designated parameter to a <code>Reader</code> object.
237151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * This method differs from the <code>setCharacterStream (int, Reader)</code> method
237251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * because it informs the driver that the parameter value should be sent to
237351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * the server as a <code>CLOB</code>.  When the <code>setCharacterStream</code> method is used, the
237451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * driver may have to do extra work to determine whether the parameter
237551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * data should be send to the server as a <code>LONGVARCHAR</code> or a <code>CLOB</code>
237651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
237751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <P><B>Note:</B> Consult your JDBC driver documentation to determine if
237851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * it might be more efficient to use a version of
237951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>setClob</code> which takes a length parameter.
238051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
238151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterName the name of the parameter
238251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param reader An object that contains the data to set the parameter value to.
238351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @throws SQLException if parameterName does not correspond to a named
238451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter; if a database access error occurs or this method is called on
238551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * a closed <code>CallableStatement</code>
238651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
238751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @throws SQLFeatureNotSupportedException  if the JDBC driver does not support this method
238851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.6
238951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
239051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     void setClob(String parameterName, Reader reader)
239151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski       throws SQLException;
239251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski
239351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
239451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Sets the designated parameter to a <code>InputStream</code> object.
239551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * This method differs from the <code>setBinaryStream (int, InputStream)</code>
239651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * method because it informs the driver that the parameter value should be
239751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * sent to the server as a <code>BLOB</code>.  When the <code>setBinaryStream</code> method is used,
239851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * the driver may have to do extra work to determine whether the parameter
239951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * data should be send to the server as a <code>LONGVARBINARY</code> or a <code>BLOB</code>
240051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
240151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <P><B>Note:</B> Consult your JDBC driver documentation to determine if
240251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * it might be more efficient to use a version of
240351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>setBlob</code> which takes a length parameter.
240451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
240551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterName the name of the parameter
240651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param inputStream An object that contains the data to set the parameter
240751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * value to.
240851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @throws SQLException if parameterName does not correspond to a named
240951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter; if a database access error occurs or
241051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
241151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @throws SQLFeatureNotSupportedException  if the JDBC driver does not support this method
241251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
241351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.6
241451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
241551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     void setBlob(String parameterName, InputStream inputStream)
241651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski        throws SQLException;
241751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski    /**
241851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * Sets the designated parameter to a <code>Reader</code> object.
241951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * This method differs from the <code>setCharacterStream (int, Reader)</code> method
242051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * because it informs the driver that the parameter value should be sent to
242151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * the server as a <code>NCLOB</code>.  When the <code>setCharacterStream</code> method is used, the
242251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * driver may have to do extra work to determine whether the parameter
242351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * data should be send to the server as a <code>LONGNVARCHAR</code> or a <code>NCLOB</code>
242451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <P><B>Note:</B> Consult your JDBC driver documentation to determine if
242551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * it might be more efficient to use a version of
242651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * <code>setNClob</code> which takes a length parameter.
242751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
242851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param parameterName the name of the parameter
242951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @param reader An object that contains the data to set the parameter value to.
243051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @throws SQLException if parameterName does not correspond to a named
243151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * parameter; if the driver does not support national character sets;
243251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * if the driver can detect that a data conversion
243351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *  error could occur;  if a database access error occurs or
243451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * this method is called on a closed <code>CallableStatement</code>
243551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @throws SQLFeatureNotSupportedException  if the JDBC driver does not support this method
243651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     *
243751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     * @since 1.6
243851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     */
243951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski     void setNClob(String parameterName, Reader reader)
244051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski       throws SQLException;
244151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski}
2442