|
1 /* |
|
2 * Copyright (c) 1996, 2016, Oracle and/or its affiliates. All rights reserved. |
|
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
|
4 * |
|
5 * This code is free software; you can redistribute it and/or modify it |
|
6 * under the terms of the GNU General Public License version 2 only, as |
|
7 * published by the Free Software Foundation. Oracle designates this |
|
8 * particular file as subject to the "Classpath" exception as provided |
|
9 * by Oracle in the LICENSE file that accompanied this code. |
|
10 * |
|
11 * This code is distributed in the hope that it will be useful, but WITHOUT |
|
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
|
13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
|
14 * version 2 for more details (a copy is included in the LICENSE file that |
|
15 * accompanied this code). |
|
16 * |
|
17 * You should have received a copy of the GNU General Public License version |
|
18 * 2 along with this work; if not, write to the Free Software Foundation, |
|
19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. |
|
20 * |
|
21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
|
22 * or visit www.oracle.com if you need additional information or have any |
|
23 * questions. |
|
24 */ |
|
25 |
|
26 package java.sql; |
|
27 |
|
28 import java.math.BigDecimal; |
|
29 import java.util.Calendar; |
|
30 import java.io.Reader; |
|
31 import java.io.InputStream; |
|
32 |
|
33 /** |
|
34 * The interface used to execute SQL stored procedures. The JDBC API |
|
35 * provides a stored procedure SQL escape syntax that allows stored procedures |
|
36 * to be called in a standard way for all RDBMSs. This escape syntax has one |
|
37 * form that includes a result parameter and one that does not. If used, the result |
|
38 * parameter must be registered as an OUT parameter. The other parameters |
|
39 * can be used for input, output or both. Parameters are referred to |
|
40 * sequentially, by number, with the first parameter being 1. |
|
41 * <PRE> |
|
42 * {?= call <procedure-name>[(<arg1>,<arg2>, ...)]} |
|
43 * {call <procedure-name>[(<arg1>,<arg2>, ...)]} |
|
44 * </PRE> |
|
45 * <P> |
|
46 * IN parameter values are set using the <code>set</code> methods inherited from |
|
47 * {@link PreparedStatement}. The type of all OUT parameters must be |
|
48 * registered prior to executing the stored procedure; their values |
|
49 * are retrieved after execution via the <code>get</code> methods provided here. |
|
50 * <P> |
|
51 * A <code>CallableStatement</code> can return one {@link ResultSet} object or |
|
52 * multiple <code>ResultSet</code> objects. Multiple |
|
53 * <code>ResultSet</code> objects are handled using operations |
|
54 * inherited from {@link Statement}. |
|
55 * <P> |
|
56 * For maximum portability, a call's <code>ResultSet</code> objects and |
|
57 * update counts should be processed prior to getting the values of output |
|
58 * parameters. |
|
59 * |
|
60 * |
|
61 * @see Connection#prepareCall |
|
62 * @see ResultSet |
|
63 * @since 1.1 |
|
64 */ |
|
65 |
|
66 public interface CallableStatement extends PreparedStatement { |
|
67 |
|
68 /** |
|
69 * Registers the OUT parameter in ordinal position |
|
70 * <code>parameterIndex</code> to the JDBC type |
|
71 * <code>sqlType</code>. All OUT parameters must be registered |
|
72 * before a stored procedure is executed. |
|
73 * <p> |
|
74 * The JDBC type specified by <code>sqlType</code> for an OUT |
|
75 * parameter determines the Java type that must be used |
|
76 * in the <code>get</code> method to read the value of that parameter. |
|
77 * <p> |
|
78 * If the JDBC type expected to be returned to this output parameter |
|
79 * is specific to this particular database, <code>sqlType</code> |
|
80 * should be <code>java.sql.Types.OTHER</code>. The method |
|
81 * {@link #getObject} retrieves the value. |
|
82 * |
|
83 * @param parameterIndex the first parameter is 1, the second is 2, |
|
84 * and so on |
|
85 * @param sqlType the JDBC type code defined by <code>java.sql.Types</code>. |
|
86 * If the parameter is of JDBC type <code>NUMERIC</code> |
|
87 * or <code>DECIMAL</code>, the version of |
|
88 * <code>registerOutParameter</code> that accepts a scale value |
|
89 * should be used. |
|
90 * |
|
91 * @exception SQLException if the parameterIndex is not valid; |
|
92 * if a database access error occurs or |
|
93 * this method is called on a closed <code>CallableStatement</code> |
|
94 * @exception SQLFeatureNotSupportedException if <code>sqlType</code> is |
|
95 * a <code>ARRAY</code>, <code>BLOB</code>, <code>CLOB</code>, |
|
96 * <code>DATALINK</code>, <code>JAVA_OBJECT</code>, <code>NCHAR</code>, |
|
97 * <code>NCLOB</code>, <code>NVARCHAR</code>, <code>LONGNVARCHAR</code>, |
|
98 * <code>REF</code>, <code>ROWID</code>, <code>SQLXML</code> |
|
99 * or <code>STRUCT</code> data type and the JDBC driver does not support |
|
100 * this data type |
|
101 * @see Types |
|
102 */ |
|
103 void registerOutParameter(int parameterIndex, int sqlType) |
|
104 throws SQLException; |
|
105 |
|
106 /** |
|
107 * Registers the parameter in ordinal position |
|
108 * <code>parameterIndex</code> to be of JDBC type |
|
109 * <code>sqlType</code>. All OUT parameters must be registered |
|
110 * before a stored procedure is executed. |
|
111 * <p> |
|
112 * The JDBC type specified by <code>sqlType</code> for an OUT |
|
113 * parameter determines the Java type that must be used |
|
114 * in the <code>get</code> method to read the value of that parameter. |
|
115 * <p> |
|
116 * This version of <code>registerOutParameter</code> should be |
|
117 * used when the parameter is of JDBC type <code>NUMERIC</code> |
|
118 * or <code>DECIMAL</code>. |
|
119 * |
|
120 * @param parameterIndex the first parameter is 1, the second is 2, |
|
121 * and so on |
|
122 * @param sqlType the SQL type code defined by <code>java.sql.Types</code>. |
|
123 * @param scale the desired number of digits to the right of the |
|
124 * decimal point. It must be greater than or equal to zero. |
|
125 * @exception SQLException if the parameterIndex is not valid; |
|
126 * if a database access error occurs or |
|
127 * this method is called on a closed <code>CallableStatement</code> |
|
128 * @exception SQLFeatureNotSupportedException if <code>sqlType</code> is |
|
129 * a <code>ARRAY</code>, <code>BLOB</code>, <code>CLOB</code>, |
|
130 * <code>DATALINK</code>, <code>JAVA_OBJECT</code>, <code>NCHAR</code>, |
|
131 * <code>NCLOB</code>, <code>NVARCHAR</code>, <code>LONGNVARCHAR</code>, |
|
132 * <code>REF</code>, <code>ROWID</code>, <code>SQLXML</code> |
|
133 * or <code>STRUCT</code> data type and the JDBC driver does not support |
|
134 * this data type |
|
135 * @see Types |
|
136 */ |
|
137 void registerOutParameter(int parameterIndex, int sqlType, int scale) |
|
138 throws SQLException; |
|
139 |
|
140 /** |
|
141 * Retrieves whether the last OUT parameter read had the value of |
|
142 * SQL <code>NULL</code>. Note that this method should be called only after |
|
143 * calling a getter method; otherwise, there is no value to use in |
|
144 * determining whether it is <code>null</code> or not. |
|
145 * |
|
146 * @return <code>true</code> if the last parameter read was SQL |
|
147 * <code>NULL</code>; <code>false</code> otherwise |
|
148 * @exception SQLException if a database access error occurs or |
|
149 * this method is called on a closed <code>CallableStatement</code> |
|
150 */ |
|
151 boolean wasNull() throws SQLException; |
|
152 |
|
153 /** |
|
154 * Retrieves the value of the designated JDBC <code>CHAR</code>, |
|
155 * <code>VARCHAR</code>, or <code>LONGVARCHAR</code> parameter as a |
|
156 * <code>String</code> in the Java programming language. |
|
157 * <p> |
|
158 * For the fixed-length type JDBC <code>CHAR</code>, |
|
159 * the <code>String</code> object |
|
160 * returned has exactly the same value the SQL |
|
161 * <code>CHAR</code> value had in the |
|
162 * database, including any padding added by the database. |
|
163 * |
|
164 * @param parameterIndex the first parameter is 1, the second is 2, |
|
165 * and so on |
|
166 * @return the parameter value. If the value is SQL <code>NULL</code>, |
|
167 * the result |
|
168 * is <code>null</code>. |
|
169 * @exception SQLException if the parameterIndex is not valid; |
|
170 * if a database access error occurs or |
|
171 * this method is called on a closed <code>CallableStatement</code> |
|
172 * @see #setString |
|
173 */ |
|
174 String getString(int parameterIndex) throws SQLException; |
|
175 |
|
176 /** |
|
177 * Retrieves the value of the designated JDBC <code>BIT</code> |
|
178 * or <code>BOOLEAN</code> parameter as a |
|
179 * <code>boolean</code> in the Java programming language. |
|
180 * |
|
181 * @param parameterIndex the first parameter is 1, the second is 2, |
|
182 * and so on |
|
183 * @return the parameter value. If the value is SQL <code>NULL</code>, |
|
184 * the result is <code>false</code>. |
|
185 * @exception SQLException if the parameterIndex is not valid; |
|
186 * if a database access error occurs or |
|
187 * this method is called on a closed <code>CallableStatement</code> |
|
188 * @see #setBoolean |
|
189 */ |
|
190 boolean getBoolean(int parameterIndex) throws SQLException; |
|
191 |
|
192 /** |
|
193 * Retrieves the value of the designated JDBC <code>TINYINT</code> parameter |
|
194 * as a <code>byte</code> in the Java programming language. |
|
195 * |
|
196 * @param parameterIndex the first parameter is 1, the second is 2, |
|
197 * and so on |
|
198 * @return the parameter value. If the value is SQL <code>NULL</code>, the result |
|
199 * is <code>0</code>. |
|
200 * @exception SQLException if the parameterIndex is not valid; |
|
201 * if a database access error occurs or |
|
202 * this method is called on a closed <code>CallableStatement</code> |
|
203 * @see #setByte |
|
204 */ |
|
205 byte getByte(int parameterIndex) throws SQLException; |
|
206 |
|
207 /** |
|
208 * Retrieves the value of the designated JDBC <code>SMALLINT</code> parameter |
|
209 * as a <code>short</code> in the Java programming language. |
|
210 * |
|
211 * @param parameterIndex the first parameter is 1, the second is 2, |
|
212 * and so on |
|
213 * @return the parameter value. If the value is SQL <code>NULL</code>, the result |
|
214 * is <code>0</code>. |
|
215 * @exception SQLException if the parameterIndex is not valid; |
|
216 * if a database access error occurs or |
|
217 * this method is called on a closed <code>CallableStatement</code> |
|
218 * @see #setShort |
|
219 */ |
|
220 short getShort(int parameterIndex) throws SQLException; |
|
221 |
|
222 /** |
|
223 * Retrieves the value of the designated JDBC <code>INTEGER</code> parameter |
|
224 * as an <code>int</code> in the Java programming language. |
|
225 * |
|
226 * @param parameterIndex the first parameter is 1, the second is 2, |
|
227 * and so on |
|
228 * @return the parameter value. If the value is SQL <code>NULL</code>, the result |
|
229 * is <code>0</code>. |
|
230 * @exception SQLException if the parameterIndex is not valid; |
|
231 * if a database access error occurs or |
|
232 * this method is called on a closed <code>CallableStatement</code> |
|
233 * @see #setInt |
|
234 */ |
|
235 int getInt(int parameterIndex) throws SQLException; |
|
236 |
|
237 /** |
|
238 * Retrieves the value of the designated JDBC <code>BIGINT</code> parameter |
|
239 * as a <code>long</code> in the Java programming language. |
|
240 * |
|
241 * @param parameterIndex the first parameter is 1, the second is 2, |
|
242 * and so on |
|
243 * @return the parameter value. If the value is SQL <code>NULL</code>, the result |
|
244 * is <code>0</code>. |
|
245 * @exception SQLException if the parameterIndex is not valid; |
|
246 * if a database access error occurs or |
|
247 * this method is called on a closed <code>CallableStatement</code> |
|
248 * @see #setLong |
|
249 */ |
|
250 long getLong(int parameterIndex) throws SQLException; |
|
251 |
|
252 /** |
|
253 * Retrieves the value of the designated JDBC <code>FLOAT</code> parameter |
|
254 * as a <code>float</code> in the Java programming language. |
|
255 * |
|
256 * @param parameterIndex the first parameter is 1, the second is 2, |
|
257 * and so on |
|
258 * @return the parameter value. If the value is SQL <code>NULL</code>, the result |
|
259 * is <code>0</code>. |
|
260 * @exception SQLException if the parameterIndex is not valid; |
|
261 * if a database access error occurs or |
|
262 * this method is called on a closed <code>CallableStatement</code> |
|
263 * @see #setFloat |
|
264 */ |
|
265 float getFloat(int parameterIndex) throws SQLException; |
|
266 |
|
267 /** |
|
268 * Retrieves the value of the designated JDBC <code>DOUBLE</code> parameter as a <code>double</code> |
|
269 * in the Java programming language. |
|
270 * @param parameterIndex the first parameter is 1, the second is 2, |
|
271 * and so on |
|
272 * @return the parameter value. If the value is SQL <code>NULL</code>, the result |
|
273 * is <code>0</code>. |
|
274 * @exception SQLException if the parameterIndex is not valid; |
|
275 * if a database access error occurs or |
|
276 * this method is called on a closed <code>CallableStatement</code> |
|
277 * @see #setDouble |
|
278 */ |
|
279 double getDouble(int parameterIndex) throws SQLException; |
|
280 |
|
281 /** |
|
282 * Retrieves the value of the designated JDBC <code>NUMERIC</code> parameter as a |
|
283 * <code>java.math.BigDecimal</code> object with <i>scale</i> digits to |
|
284 * the right of the decimal point. |
|
285 * @param parameterIndex the first parameter is 1, the second is 2, |
|
286 * and so on |
|
287 * @param scale the number of digits to the right of the decimal point |
|
288 * @return the parameter value. If the value is SQL <code>NULL</code>, the result |
|
289 * is <code>null</code>. |
|
290 * @exception SQLException if the parameterIndex is not valid; |
|
291 * if a database access error occurs or |
|
292 * this method is called on a closed <code>CallableStatement</code> |
|
293 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support |
|
294 * this method |
|
295 * @deprecated use <code>getBigDecimal(int parameterIndex)</code> |
|
296 * or <code>getBigDecimal(String parameterName)</code> |
|
297 * @see #setBigDecimal |
|
298 */ |
|
299 @Deprecated(since="1.2") |
|
300 BigDecimal getBigDecimal(int parameterIndex, int scale) |
|
301 throws SQLException; |
|
302 |
|
303 /** |
|
304 * Retrieves the value of the designated JDBC <code>BINARY</code> or |
|
305 * <code>VARBINARY</code> parameter as an array of <code>byte</code> |
|
306 * values in the Java programming language. |
|
307 * @param parameterIndex the first parameter is 1, the second is 2, |
|
308 * and so on |
|
309 * @return the parameter value. If the value is SQL <code>NULL</code>, the result |
|
310 * is <code>null</code>. |
|
311 * @exception SQLException if the parameterIndex is not valid; |
|
312 * if a database access error occurs or |
|
313 * this method is called on a closed <code>CallableStatement</code> |
|
314 * @see #setBytes |
|
315 */ |
|
316 byte[] getBytes(int parameterIndex) throws SQLException; |
|
317 |
|
318 /** |
|
319 * Retrieves the value of the designated JDBC <code>DATE</code> parameter as a |
|
320 * <code>java.sql.Date</code> object. |
|
321 * @param parameterIndex the first parameter is 1, the second is 2, |
|
322 * and so on |
|
323 * @return the parameter value. If the value is SQL <code>NULL</code>, the result |
|
324 * is <code>null</code>. |
|
325 * @exception SQLException if the parameterIndex is not valid; |
|
326 * if a database access error occurs or |
|
327 * this method is called on a closed <code>CallableStatement</code> |
|
328 * @see #setDate |
|
329 */ |
|
330 java.sql.Date getDate(int parameterIndex) throws SQLException; |
|
331 |
|
332 /** |
|
333 * Retrieves the value of the designated JDBC <code>TIME</code> parameter as a |
|
334 * <code>java.sql.Time</code> object. |
|
335 * |
|
336 * @param parameterIndex the first parameter is 1, the second is 2, |
|
337 * and so on |
|
338 * @return the parameter value. If the value is SQL <code>NULL</code>, the result |
|
339 * is <code>null</code>. |
|
340 * @exception SQLException if the parameterIndex is not valid; |
|
341 * if a database access error occurs or |
|
342 * this method is called on a closed <code>CallableStatement</code> |
|
343 * @see #setTime |
|
344 */ |
|
345 java.sql.Time getTime(int parameterIndex) throws SQLException; |
|
346 |
|
347 /** |
|
348 * Retrieves the value of the designated JDBC <code>TIMESTAMP</code> parameter as a |
|
349 * <code>java.sql.Timestamp</code> object. |
|
350 * |
|
351 * @param parameterIndex the first parameter is 1, the second is 2, |
|
352 * and so on |
|
353 * @return the parameter value. If the value is SQL <code>NULL</code>, the result |
|
354 * is <code>null</code>. |
|
355 * @exception SQLException if the parameterIndex is not valid; |
|
356 * if a database access error occurs or |
|
357 * this method is called on a closed <code>CallableStatement</code> |
|
358 * @see #setTimestamp |
|
359 */ |
|
360 java.sql.Timestamp getTimestamp(int parameterIndex) |
|
361 throws SQLException; |
|
362 |
|
363 //---------------------------------------------------------------------- |
|
364 // Advanced features: |
|
365 |
|
366 |
|
367 /** |
|
368 * Retrieves the value of the designated parameter as an <code>Object</code> |
|
369 * in the Java programming language. If the value is an SQL <code>NULL</code>, |
|
370 * the driver returns a Java <code>null</code>. |
|
371 * <p> |
|
372 * This method returns a Java object whose type corresponds to the JDBC |
|
373 * type that was registered for this parameter using the method |
|
374 * <code>registerOutParameter</code>. By registering the target JDBC |
|
375 * type as <code>java.sql.Types.OTHER</code>, this method can be used |
|
376 * to read database-specific abstract data types. |
|
377 * |
|
378 * @param parameterIndex the first parameter is 1, the second is 2, |
|
379 * and so on |
|
380 * @return A <code>java.lang.Object</code> holding the OUT parameter value |
|
381 * @exception SQLException if the parameterIndex is not valid; |
|
382 * if a database access error occurs or |
|
383 * this method is called on a closed <code>CallableStatement</code> |
|
384 * @see Types |
|
385 * @see #setObject |
|
386 */ |
|
387 Object getObject(int parameterIndex) throws SQLException; |
|
388 |
|
389 |
|
390 //--------------------------JDBC 2.0----------------------------- |
|
391 |
|
392 /** |
|
393 * Retrieves the value of the designated JDBC <code>NUMERIC</code> parameter as a |
|
394 * <code>java.math.BigDecimal</code> object with as many digits to the |
|
395 * right of the decimal point as the value contains. |
|
396 * @param parameterIndex the first parameter is 1, the second is 2, |
|
397 * and so on |
|
398 * @return the parameter value in full precision. If the value is |
|
399 * SQL <code>NULL</code>, the result is <code>null</code>. |
|
400 * @exception SQLException if the parameterIndex is not valid; |
|
401 * if a database access error occurs or |
|
402 * this method is called on a closed <code>CallableStatement</code> |
|
403 * @see #setBigDecimal |
|
404 * @since 1.2 |
|
405 */ |
|
406 BigDecimal getBigDecimal(int parameterIndex) throws SQLException; |
|
407 |
|
408 /** |
|
409 * Returns an object representing the value of OUT parameter |
|
410 * <code>parameterIndex</code> and uses <code>map</code> for the custom |
|
411 * mapping of the parameter value. |
|
412 * <p> |
|
413 * This method returns a Java object whose type corresponds to the |
|
414 * JDBC type that was registered for this parameter using the method |
|
415 * <code>registerOutParameter</code>. By registering the target |
|
416 * JDBC type as <code>java.sql.Types.OTHER</code>, this method can |
|
417 * be used to read database-specific abstract data types. |
|
418 * @param parameterIndex the first parameter is 1, the second is 2, and so on |
|
419 * @param map the mapping from SQL type names to Java classes |
|
420 * @return a <code>java.lang.Object</code> holding the OUT parameter value |
|
421 * @exception SQLException if the parameterIndex is not valid; |
|
422 * if a database access error occurs or |
|
423 * this method is called on a closed <code>CallableStatement</code> |
|
424 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support |
|
425 * this method |
|
426 * @see #setObject |
|
427 * @since 1.2 |
|
428 */ |
|
429 Object getObject(int parameterIndex, java.util.Map<String,Class<?>> map) |
|
430 throws SQLException; |
|
431 |
|
432 /** |
|
433 * Retrieves the value of the designated JDBC <code>REF(<structured-type>)</code> |
|
434 * parameter as a {@link java.sql.Ref} object in the Java programming language. |
|
435 * @param parameterIndex the first parameter is 1, the second is 2, |
|
436 * and so on |
|
437 * @return the parameter value as a <code>Ref</code> object in the |
|
438 * Java programming language. If the value was SQL <code>NULL</code>, the value |
|
439 * <code>null</code> is returned. |
|
440 * @exception SQLException if the parameterIndex is not valid; |
|
441 * if a database access error occurs or |
|
442 * this method is called on a closed <code>CallableStatement</code> |
|
443 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support |
|
444 * this method |
|
445 * @since 1.2 |
|
446 */ |
|
447 Ref getRef (int parameterIndex) throws SQLException; |
|
448 |
|
449 /** |
|
450 * Retrieves the value of the designated JDBC <code>BLOB</code> parameter as a |
|
451 * {@link java.sql.Blob} object in the Java programming language. |
|
452 * @param parameterIndex the first parameter is 1, the second is 2, and so on |
|
453 * @return the parameter value as a <code>Blob</code> object in the |
|
454 * Java programming language. If the value was SQL <code>NULL</code>, the value |
|
455 * <code>null</code> is returned. |
|
456 * @exception SQLException if the parameterIndex is not valid; |
|
457 * if a database access error occurs or |
|
458 * this method is called on a closed <code>CallableStatement</code> |
|
459 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support |
|
460 * this method |
|
461 * @since 1.2 |
|
462 */ |
|
463 Blob getBlob (int parameterIndex) throws SQLException; |
|
464 |
|
465 /** |
|
466 * Retrieves the value of the designated JDBC <code>CLOB</code> parameter as a |
|
467 * <code>java.sql.Clob</code> object in the Java programming language. |
|
468 * @param parameterIndex the first parameter is 1, the second is 2, and |
|
469 * so on |
|
470 * @return the parameter value as a <code>Clob</code> object in the |
|
471 * Java programming language. If the value was SQL <code>NULL</code>, the |
|
472 * value <code>null</code> is returned. |
|
473 * @exception SQLException if the parameterIndex is not valid; |
|
474 * if a database access error occurs or |
|
475 * this method is called on a closed <code>CallableStatement</code> |
|
476 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support |
|
477 * this method |
|
478 * @since 1.2 |
|
479 */ |
|
480 Clob getClob (int parameterIndex) throws SQLException; |
|
481 |
|
482 /** |
|
483 * |
|
484 * Retrieves the value of the designated JDBC <code>ARRAY</code> parameter as an |
|
485 * {@link java.sql.Array} object in the Java programming language. |
|
486 * @param parameterIndex the first parameter is 1, the second is 2, and |
|
487 * so on |
|
488 * @return the parameter value as an <code>Array</code> object in |
|
489 * the Java programming language. If the value was SQL <code>NULL</code>, the |
|
490 * value <code>null</code> is returned. |
|
491 * @exception SQLException if the parameterIndex is not valid; |
|
492 * if a database access error occurs or |
|
493 * this method is called on a closed <code>CallableStatement</code> |
|
494 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support |
|
495 * this method |
|
496 * @since 1.2 |
|
497 */ |
|
498 Array getArray (int parameterIndex) throws SQLException; |
|
499 |
|
500 /** |
|
501 * Retrieves the value of the designated JDBC <code>DATE</code> parameter as a |
|
502 * <code>java.sql.Date</code> object, using |
|
503 * the given <code>Calendar</code> object |
|
504 * to construct the date. |
|
505 * With a <code>Calendar</code> object, the driver |
|
506 * can calculate the date taking into account a custom timezone and locale. |
|
507 * If no <code>Calendar</code> object is specified, the driver uses the |
|
508 * default timezone and locale. |
|
509 * |
|
510 * @param parameterIndex the first parameter is 1, the second is 2, |
|
511 * and so on |
|
512 * @param cal the <code>Calendar</code> object the driver will use |
|
513 * to construct the date |
|
514 * @return the parameter value. If the value is SQL <code>NULL</code>, the result |
|
515 * is <code>null</code>. |
|
516 * @exception SQLException if the parameterIndex is not valid; |
|
517 * if a database access error occurs or |
|
518 * this method is called on a closed <code>CallableStatement</code> |
|
519 * @see #setDate |
|
520 * @since 1.2 |
|
521 */ |
|
522 java.sql.Date getDate(int parameterIndex, Calendar cal) |
|
523 throws SQLException; |
|
524 |
|
525 /** |
|
526 * Retrieves the value of the designated JDBC <code>TIME</code> parameter as a |
|
527 * <code>java.sql.Time</code> object, using |
|
528 * the given <code>Calendar</code> object |
|
529 * to construct the time. |
|
530 * With a <code>Calendar</code> object, the driver |
|
531 * can calculate the time taking into account a custom timezone and locale. |
|
532 * If no <code>Calendar</code> object is specified, the driver uses the |
|
533 * default timezone and locale. |
|
534 * |
|
535 * @param parameterIndex the first parameter is 1, the second is 2, |
|
536 * and so on |
|
537 * @param cal the <code>Calendar</code> object the driver will use |
|
538 * to construct the time |
|
539 * @return the parameter value; if the value is SQL <code>NULL</code>, the result |
|
540 * is <code>null</code>. |
|
541 * @exception SQLException if the parameterIndex is not valid; |
|
542 * if a database access error occurs or |
|
543 * this method is called on a closed <code>CallableStatement</code> |
|
544 * @see #setTime |
|
545 * @since 1.2 |
|
546 */ |
|
547 java.sql.Time getTime(int parameterIndex, Calendar cal) |
|
548 throws SQLException; |
|
549 |
|
550 /** |
|
551 * Retrieves the value of the designated JDBC <code>TIMESTAMP</code> parameter as a |
|
552 * <code>java.sql.Timestamp</code> object, using |
|
553 * the given <code>Calendar</code> object to construct |
|
554 * the <code>Timestamp</code> object. |
|
555 * With a <code>Calendar</code> object, the driver |
|
556 * can calculate the timestamp taking into account a custom timezone and locale. |
|
557 * If no <code>Calendar</code> object is specified, the driver uses the |
|
558 * default timezone and locale. |
|
559 * |
|
560 * |
|
561 * @param parameterIndex the first parameter is 1, the second is 2, |
|
562 * and so on |
|
563 * @param cal the <code>Calendar</code> object the driver will use |
|
564 * to construct the timestamp |
|
565 * @return the parameter value. If the value is SQL <code>NULL</code>, the result |
|
566 * is <code>null</code>. |
|
567 * @exception SQLException if the parameterIndex is not valid; |
|
568 * if a database access error occurs or |
|
569 * this method is called on a closed <code>CallableStatement</code> |
|
570 * @see #setTimestamp |
|
571 * @since 1.2 |
|
572 */ |
|
573 java.sql.Timestamp getTimestamp(int parameterIndex, Calendar cal) |
|
574 throws SQLException; |
|
575 |
|
576 |
|
577 /** |
|
578 * Registers the designated output parameter. |
|
579 * This version of |
|
580 * the method <code>registerOutParameter</code> |
|
581 * should be used for a user-defined or <code>REF</code> output parameter. Examples |
|
582 * of user-defined types include: <code>STRUCT</code>, <code>DISTINCT</code>, |
|
583 * <code>JAVA_OBJECT</code>, and named array types. |
|
584 *<p> |
|
585 * All OUT parameters must be registered |
|
586 * before a stored procedure is executed. |
|
587 * <p> For a user-defined parameter, the fully-qualified SQL |
|
588 * type name of the parameter should also be given, while a <code>REF</code> |
|
589 * parameter requires that the fully-qualified type name of the |
|
590 * referenced type be given. A JDBC driver that does not need the |
|
591 * type code and type name information may ignore it. To be portable, |
|
592 * however, applications should always provide these values for |
|
593 * user-defined and <code>REF</code> parameters. |
|
594 * |
|
595 * Although it is intended for user-defined and <code>REF</code> parameters, |
|
596 * this method may be used to register a parameter of any JDBC type. |
|
597 * If the parameter does not have a user-defined or <code>REF</code> type, the |
|
598 * <i>typeName</i> parameter is ignored. |
|
599 * |
|
600 * <P><B>Note:</B> When reading the value of an out parameter, you |
|
601 * must use the getter method whose Java type corresponds to the |
|
602 * parameter's registered SQL type. |
|
603 * |
|
604 * @param parameterIndex the first parameter is 1, the second is 2,... |
|
605 * @param sqlType a value from {@link java.sql.Types} |
|
606 * @param typeName the fully-qualified name of an SQL structured type |
|
607 * @exception SQLException if the parameterIndex is not valid; |
|
608 * if a database access error occurs or |
|
609 * this method is called on a closed <code>CallableStatement</code> |
|
610 * @exception SQLFeatureNotSupportedException if <code>sqlType</code> is |
|
611 * a <code>ARRAY</code>, <code>BLOB</code>, <code>CLOB</code>, |
|
612 * <code>DATALINK</code>, <code>JAVA_OBJECT</code>, <code>NCHAR</code>, |
|
613 * <code>NCLOB</code>, <code>NVARCHAR</code>, <code>LONGNVARCHAR</code>, |
|
614 * <code>REF</code>, <code>ROWID</code>, <code>SQLXML</code> |
|
615 * or <code>STRUCT</code> data type and the JDBC driver does not support |
|
616 * this data type |
|
617 * @see Types |
|
618 * @since 1.2 |
|
619 */ |
|
620 void registerOutParameter (int parameterIndex, int sqlType, String typeName) |
|
621 throws SQLException; |
|
622 |
|
623 //--------------------------JDBC 3.0----------------------------- |
|
624 |
|
625 /** |
|
626 * Registers the OUT parameter named |
|
627 * <code>parameterName</code> to the JDBC type |
|
628 * <code>sqlType</code>. All OUT parameters must be registered |
|
629 * before a stored procedure is executed. |
|
630 * <p> |
|
631 * The JDBC type specified by <code>sqlType</code> for an OUT |
|
632 * parameter determines the Java type that must be used |
|
633 * in the <code>get</code> method to read the value of that parameter. |
|
634 * <p> |
|
635 * If the JDBC type expected to be returned to this output parameter |
|
636 * is specific to this particular database, <code>sqlType</code> |
|
637 * should be <code>java.sql.Types.OTHER</code>. The method |
|
638 * {@link #getObject} retrieves the value. |
|
639 * @param parameterName the name of the parameter |
|
640 * @param sqlType the JDBC type code defined by <code>java.sql.Types</code>. |
|
641 * If the parameter is of JDBC type <code>NUMERIC</code> |
|
642 * or <code>DECIMAL</code>, the version of |
|
643 * <code>registerOutParameter</code> that accepts a scale value |
|
644 * should be used. |
|
645 * @exception SQLException if parameterName does not correspond to a named |
|
646 * parameter; if a database access error occurs or |
|
647 * this method is called on a closed <code>CallableStatement</code> |
|
648 * @exception SQLFeatureNotSupportedException if <code>sqlType</code> is |
|
649 * a <code>ARRAY</code>, <code>BLOB</code>, <code>CLOB</code>, |
|
650 * <code>DATALINK</code>, <code>JAVA_OBJECT</code>, <code>NCHAR</code>, |
|
651 * <code>NCLOB</code>, <code>NVARCHAR</code>, <code>LONGNVARCHAR</code>, |
|
652 * <code>REF</code>, <code>ROWID</code>, <code>SQLXML</code> |
|
653 * or <code>STRUCT</code> data type and the JDBC driver does not support |
|
654 * this data type or if the JDBC driver does not support |
|
655 * this method |
|
656 * @since 1.4 |
|
657 * @see Types |
|
658 */ |
|
659 void registerOutParameter(String parameterName, int sqlType) |
|
660 throws SQLException; |
|
661 |
|
662 /** |
|
663 * Registers the parameter named |
|
664 * <code>parameterName</code> to be of JDBC type |
|
665 * <code>sqlType</code>. All OUT parameters must be registered |
|
666 * before a stored procedure is executed. |
|
667 * <p> |
|
668 * The JDBC type specified by <code>sqlType</code> for an OUT |
|
669 * parameter determines the Java type that must be used |
|
670 * in the <code>get</code> method to read the value of that parameter. |
|
671 * <p> |
|
672 * This version of <code>registerOutParameter</code> should be |
|
673 * used when the parameter is of JDBC type <code>NUMERIC</code> |
|
674 * or <code>DECIMAL</code>. |
|
675 * |
|
676 * @param parameterName the name of the parameter |
|
677 * @param sqlType SQL type code defined by <code>java.sql.Types</code>. |
|
678 * @param scale the desired number of digits to the right of the |
|
679 * decimal point. It must be greater than or equal to zero. |
|
680 * @exception SQLException if parameterName does not correspond to a named |
|
681 * parameter; if a database access error occurs or |
|
682 * this method is called on a closed <code>CallableStatement</code> |
|
683 * @exception SQLFeatureNotSupportedException if <code>sqlType</code> is |
|
684 * a <code>ARRAY</code>, <code>BLOB</code>, <code>CLOB</code>, |
|
685 * <code>DATALINK</code>, <code>JAVA_OBJECT</code>, <code>NCHAR</code>, |
|
686 * <code>NCLOB</code>, <code>NVARCHAR</code>, <code>LONGNVARCHAR</code>, |
|
687 * <code>REF</code>, <code>ROWID</code>, <code>SQLXML</code> |
|
688 * or <code>STRUCT</code> data type and the JDBC driver does not support |
|
689 * this data type or if the JDBC driver does not support |
|
690 * this method |
|
691 * @since 1.4 |
|
692 * @see Types |
|
693 */ |
|
694 void registerOutParameter(String parameterName, int sqlType, int scale) |
|
695 throws SQLException; |
|
696 |
|
697 /** |
|
698 * Registers the designated output parameter. This version of |
|
699 * the method <code>registerOutParameter</code> |
|
700 * should be used for a user-named or REF output parameter. Examples |
|
701 * of user-named types include: STRUCT, DISTINCT, JAVA_OBJECT, and |
|
702 * named array types. |
|
703 *<p> |
|
704 * All OUT parameters must be registered |
|
705 * before a stored procedure is executed. |
|
706 * <p> |
|
707 * For a user-named parameter the fully-qualified SQL |
|
708 * type name of the parameter should also be given, while a REF |
|
709 * parameter requires that the fully-qualified type name of the |
|
710 * referenced type be given. A JDBC driver that does not need the |
|
711 * type code and type name information may ignore it. To be portable, |
|
712 * however, applications should always provide these values for |
|
713 * user-named and REF parameters. |
|
714 * |
|
715 * Although it is intended for user-named and REF parameters, |
|
716 * this method may be used to register a parameter of any JDBC type. |
|
717 * If the parameter does not have a user-named or REF type, the |
|
718 * typeName parameter is ignored. |
|
719 * |
|
720 * <P><B>Note:</B> When reading the value of an out parameter, you |
|
721 * must use the <code>getXXX</code> method whose Java type XXX corresponds to the |
|
722 * parameter's registered SQL type. |
|
723 * |
|
724 * @param parameterName the name of the parameter |
|
725 * @param sqlType a value from {@link java.sql.Types} |
|
726 * @param typeName the fully-qualified name of an SQL structured type |
|
727 * @exception SQLException if parameterName does not correspond to a named |
|
728 * parameter; if a database access error occurs or |
|
729 * this method is called on a closed <code>CallableStatement</code> |
|
730 * @exception SQLFeatureNotSupportedException if <code>sqlType</code> is |
|
731 * a <code>ARRAY</code>, <code>BLOB</code>, <code>CLOB</code>, |
|
732 * <code>DATALINK</code>, <code>JAVA_OBJECT</code>, <code>NCHAR</code>, |
|
733 * <code>NCLOB</code>, <code>NVARCHAR</code>, <code>LONGNVARCHAR</code>, |
|
734 * <code>REF</code>, <code>ROWID</code>, <code>SQLXML</code> |
|
735 * or <code>STRUCT</code> data type and the JDBC driver does not support |
|
736 * this data type or if the JDBC driver does not support |
|
737 * this method |
|
738 * @see Types |
|
739 * @since 1.4 |
|
740 */ |
|
741 void registerOutParameter (String parameterName, int sqlType, String typeName) |
|
742 throws SQLException; |
|
743 |
|
744 /** |
|
745 * Retrieves the value of the designated JDBC <code>DATALINK</code> parameter as a |
|
746 * <code>java.net.URL</code> object. |
|
747 * |
|
748 * @param parameterIndex the first parameter is 1, the second is 2,... |
|
749 * @return a <code>java.net.URL</code> object that represents the |
|
750 * JDBC <code>DATALINK</code> value used as the designated |
|
751 * parameter |
|
752 * @exception SQLException if the parameterIndex is not valid; |
|
753 * if a database access error occurs, |
|
754 * this method is called on a closed <code>CallableStatement</code>, |
|
755 * or if the URL being returned is |
|
756 * not a valid URL on the Java platform |
|
757 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support |
|
758 * this method |
|
759 * @see #setURL |
|
760 * @since 1.4 |
|
761 */ |
|
762 java.net.URL getURL(int parameterIndex) throws SQLException; |
|
763 |
|
764 /** |
|
765 * Sets the designated parameter to the given <code>java.net.URL</code> object. |
|
766 * The driver converts this to an SQL <code>DATALINK</code> value when |
|
767 * it sends it to the database. |
|
768 * |
|
769 * @param parameterName the name of the parameter |
|
770 * @param val the parameter value |
|
771 * @exception SQLException if parameterName does not correspond to a named |
|
772 * parameter; if a database access error occurs; |
|
773 * this method is called on a closed <code>CallableStatement</code> |
|
774 * or if a URL is malformed |
|
775 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support |
|
776 * this method |
|
777 * @see #getURL |
|
778 * @since 1.4 |
|
779 */ |
|
780 void setURL(String parameterName, java.net.URL val) throws SQLException; |
|
781 |
|
782 /** |
|
783 * Sets the designated parameter to SQL <code>NULL</code>. |
|
784 * |
|
785 * <P><B>Note:</B> You must specify the parameter's SQL type. |
|
786 * |
|
787 * @param parameterName the name of the parameter |
|
788 * @param sqlType the SQL type code defined in <code>java.sql.Types</code> |
|
789 * @exception SQLException if parameterName does not correspond to a named |
|
790 * parameter; if a database access error occurs or |
|
791 * this method is called on a closed <code>CallableStatement</code> |
|
792 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support |
|
793 * this method |
|
794 * @since 1.4 |
|
795 */ |
|
796 void setNull(String parameterName, int sqlType) throws SQLException; |
|
797 |
|
798 /** |
|
799 * Sets the designated parameter to the given Java <code>boolean</code> value. |
|
800 * The driver converts this |
|
801 * to an SQL <code>BIT</code> or <code>BOOLEAN</code> value when it sends it to the database. |
|
802 * |
|
803 * @param parameterName the name of the parameter |
|
804 * @param x the parameter value |
|
805 * @exception SQLException if parameterName does not correspond to a named |
|
806 * parameter; if a database access error occurs or |
|
807 * this method is called on a closed <code>CallableStatement</code> |
|
808 * @see #getBoolean |
|
809 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support |
|
810 * this method |
|
811 * @since 1.4 |
|
812 */ |
|
813 void setBoolean(String parameterName, boolean x) throws SQLException; |
|
814 |
|
815 /** |
|
816 * Sets the designated parameter to the given Java <code>byte</code> value. |
|
817 * The driver converts this |
|
818 * to an SQL <code>TINYINT</code> value when it sends it to the database. |
|
819 * |
|
820 * @param parameterName the name of the parameter |
|
821 * @param x the parameter value |
|
822 * @exception SQLException if parameterName does not correspond to a named |
|
823 * parameter; if a database access error occurs or |
|
824 * this method is called on a closed <code>CallableStatement</code> |
|
825 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support |
|
826 * this method |
|
827 * @see #getByte |
|
828 * @since 1.4 |
|
829 */ |
|
830 void setByte(String parameterName, byte x) throws SQLException; |
|
831 |
|
832 /** |
|
833 * Sets the designated parameter to the given Java <code>short</code> value. |
|
834 * The driver converts this |
|
835 * to an SQL <code>SMALLINT</code> value when it sends it to the database. |
|
836 * |
|
837 * @param parameterName the name of the parameter |
|
838 * @param x the parameter value |
|
839 * @exception SQLException if parameterName does not correspond to a named |
|
840 * parameter; if a database access error occurs or |
|
841 * this method is called on a closed <code>CallableStatement</code> |
|
842 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support |
|
843 * this method |
|
844 * @see #getShort |
|
845 * @since 1.4 |
|
846 */ |
|
847 void setShort(String parameterName, short x) throws SQLException; |
|
848 |
|
849 /** |
|
850 * Sets the designated parameter to the given Java <code>int</code> value. |
|
851 * The driver converts this |
|
852 * to an SQL <code>INTEGER</code> value when it sends it to the database. |
|
853 * |
|
854 * @param parameterName the name of the parameter |
|
855 * @param x the parameter value |
|
856 * @exception SQLException if parameterName does not correspond to a named |
|
857 * parameter; if a database access error occurs or |
|
858 * this method is called on a closed <code>CallableStatement</code> |
|
859 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support |
|
860 * this method |
|
861 * @see #getInt |
|
862 * @since 1.4 |
|
863 */ |
|
864 void setInt(String parameterName, int x) throws SQLException; |
|
865 |
|
866 /** |
|
867 * Sets the designated parameter to the given Java <code>long</code> value. |
|
868 * The driver converts this |
|
869 * to an SQL <code>BIGINT</code> value when it sends it to the database. |
|
870 * |
|
871 * @param parameterName the name of the parameter |
|
872 * @param x the parameter value |
|
873 * @exception SQLException if parameterName does not correspond to a named |
|
874 * parameter; if a database access error occurs or |
|
875 * this method is called on a closed <code>CallableStatement</code> |
|
876 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support |
|
877 * this method |
|
878 * @see #getLong |
|
879 * @since 1.4 |
|
880 */ |
|
881 void setLong(String parameterName, long x) throws SQLException; |
|
882 |
|
883 /** |
|
884 * Sets the designated parameter to the given Java <code>float</code> value. |
|
885 * The driver converts this |
|
886 * to an SQL <code>FLOAT</code> value when it sends it to the database. |
|
887 * |
|
888 * @param parameterName the name of the parameter |
|
889 * @param x the parameter value |
|
890 * @exception SQLException if parameterName does not correspond to a named |
|
891 * parameter; if a database access error occurs or |
|
892 * this method is called on a closed <code>CallableStatement</code> |
|
893 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support |
|
894 * this method |
|
895 * @see #getFloat |
|
896 * @since 1.4 |
|
897 */ |
|
898 void setFloat(String parameterName, float x) throws SQLException; |
|
899 |
|
900 /** |
|
901 * Sets the designated parameter to the given Java <code>double</code> value. |
|
902 * The driver converts this |
|
903 * to an SQL <code>DOUBLE</code> value when it sends it to the database. |
|
904 * |
|
905 * @param parameterName the name of the parameter |
|
906 * @param x the parameter value |
|
907 * @exception SQLException if parameterName does not correspond to a named |
|
908 * parameter; if a database access error occurs or |
|
909 * this method is called on a closed <code>CallableStatement</code> |
|
910 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support |
|
911 * this method |
|
912 * @see #getDouble |
|
913 * @since 1.4 |
|
914 */ |
|
915 void setDouble(String parameterName, double x) throws SQLException; |
|
916 |
|
917 /** |
|
918 * Sets the designated parameter to the given |
|
919 * <code>java.math.BigDecimal</code> value. |
|
920 * The driver converts this to an SQL <code>NUMERIC</code> value when |
|
921 * it sends it to the database. |
|
922 * |
|
923 * @param parameterName the name of the parameter |
|
924 * @param x the parameter value |
|
925 * @exception SQLException if parameterName does not correspond to a named |
|
926 * parameter; if a database access error occurs or |
|
927 * this method is called on a closed <code>CallableStatement</code> |
|
928 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support |
|
929 * this method |
|
930 * @see #getBigDecimal |
|
931 * @since 1.4 |
|
932 */ |
|
933 void setBigDecimal(String parameterName, BigDecimal x) throws SQLException; |
|
934 |
|
935 /** |
|
936 * Sets the designated parameter to the given Java <code>String</code> value. |
|
937 * The driver converts this |
|
938 * to an SQL <code>VARCHAR</code> or <code>LONGVARCHAR</code> value |
|
939 * (depending on the argument's |
|
940 * size relative to the driver's limits on <code>VARCHAR</code> values) |
|
941 * when it sends it to the database. |
|
942 * |
|
943 * @param parameterName the name of the parameter |
|
944 * @param x the parameter value |
|
945 * @exception SQLException if parameterName does not correspond to a named |
|
946 * parameter; if a database access error occurs or |
|
947 * this method is called on a closed <code>CallableStatement</code> |
|
948 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support |
|
949 * this method |
|
950 * @see #getString |
|
951 * @since 1.4 |
|
952 */ |
|
953 void setString(String parameterName, String x) throws SQLException; |
|
954 |
|
955 /** |
|
956 * Sets the designated parameter to the given Java array of bytes. |
|
957 * The driver converts this to an SQL <code>VARBINARY</code> or |
|
958 * <code>LONGVARBINARY</code> (depending on the argument's size relative |
|
959 * to the driver's limits on <code>VARBINARY</code> values) when it sends |
|
960 * it to the database. |
|
961 * |
|
962 * @param parameterName the name of the parameter |
|
963 * @param x the parameter value |
|
964 * @exception SQLException if parameterName does not correspond to a named |
|
965 * parameter; if a database access error occurs or |
|
966 * this method is called on a closed <code>CallableStatement</code> |
|
967 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support |
|
968 * this method |
|
969 * @see #getBytes |
|
970 * @since 1.4 |
|
971 */ |
|
972 void setBytes(String parameterName, byte x[]) throws SQLException; |
|
973 |
|
974 /** |
|
975 * Sets the designated parameter to the given <code>java.sql.Date</code> value |
|
976 * using the default time zone of the virtual machine that is running |
|
977 * the application. |
|
978 * The driver converts this |
|
979 * to an SQL <code>DATE</code> value when it sends it to the database. |
|
980 * |
|
981 * @param parameterName the name of the parameter |
|
982 * @param x the parameter value |
|
983 * @exception SQLException if parameterName does not correspond to a named |
|
984 * parameter; if a database access error occurs or |
|
985 * this method is called on a closed <code>CallableStatement</code> |
|
986 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support |
|
987 * this method |
|
988 * @see #getDate |
|
989 * @since 1.4 |
|
990 */ |
|
991 void setDate(String parameterName, java.sql.Date x) |
|
992 throws SQLException; |
|
993 |
|
994 /** |
|
995 * Sets the designated parameter to the given <code>java.sql.Time</code> value. |
|
996 * The driver converts this |
|
997 * to an SQL <code>TIME</code> value when it sends it to the database. |
|
998 * |
|
999 * @param parameterName the name of the parameter |
|
1000 * @param x the parameter value |
|
1001 * @exception SQLException if parameterName does not correspond to a named |
|
1002 * parameter; if a database access error occurs or |
|
1003 * this method is called on a closed <code>CallableStatement</code> |
|
1004 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support |
|
1005 * this method |
|
1006 * @see #getTime |
|
1007 * @since 1.4 |
|
1008 */ |
|
1009 void setTime(String parameterName, java.sql.Time x) |
|
1010 throws SQLException; |
|
1011 |
|
1012 /** |
|
1013 * Sets the designated parameter to the given <code>java.sql.Timestamp</code> value. |
|
1014 * The driver |
|
1015 * converts this to an SQL <code>TIMESTAMP</code> value when it sends it to the |
|
1016 * database. |
|
1017 * |
|
1018 * @param parameterName the name of the parameter |
|
1019 * @param x the parameter value |
|
1020 * @exception SQLException if parameterName does not correspond to a named |
|
1021 * parameter; if a database access error occurs or |
|
1022 * this method is called on a closed <code>CallableStatement</code> |
|
1023 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support |
|
1024 * this method |
|
1025 * @see #getTimestamp |
|
1026 * @since 1.4 |
|
1027 */ |
|
1028 void setTimestamp(String parameterName, java.sql.Timestamp x) |
|
1029 throws SQLException; |
|
1030 |
|
1031 /** |
|
1032 * Sets the designated parameter to the given input stream, which will have |
|
1033 * the specified number of bytes. |
|
1034 * When a very large ASCII value is input to a <code>LONGVARCHAR</code> |
|
1035 * parameter, it may be more practical to send it via a |
|
1036 * <code>java.io.InputStream</code>. Data will be read from the stream |
|
1037 * as needed until end-of-file is reached. The JDBC driver will |
|
1038 * do any necessary conversion from ASCII to the database char format. |
|
1039 * |
|
1040 * <P><B>Note:</B> This stream object can either be a standard |
|
1041 * Java stream object or your own subclass that implements the |
|
1042 * standard interface. |
|
1043 * |
|
1044 * @param parameterName the name of the parameter |
|
1045 * @param x the Java input stream that contains the ASCII parameter value |
|
1046 * @param length the number of bytes in the stream |
|
1047 * @exception SQLException if parameterName does not correspond to a named |
|
1048 * parameter; if a database access error occurs or |
|
1049 * this method is called on a closed <code>CallableStatement</code> |
|
1050 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support |
|
1051 * this method |
|
1052 * @since 1.4 |
|
1053 */ |
|
1054 void setAsciiStream(String parameterName, java.io.InputStream x, int length) |
|
1055 throws SQLException; |
|
1056 |
|
1057 /** |
|
1058 * Sets the designated parameter to the given input stream, which will have |
|
1059 * the specified number of bytes. |
|
1060 * When a very large binary value is input to a <code>LONGVARBINARY</code> |
|
1061 * parameter, it may be more practical to send it via a |
|
1062 * <code>java.io.InputStream</code> object. The data will be read from the stream |
|
1063 * as needed until end-of-file is reached. |
|
1064 * |
|
1065 * <P><B>Note:</B> This stream object can either be a standard |
|
1066 * Java stream object or your own subclass that implements the |
|
1067 * standard interface. |
|
1068 * |
|
1069 * @param parameterName the name of the parameter |
|
1070 * @param x the java input stream which contains the binary parameter value |
|
1071 * @param length the number of bytes in the stream |
|
1072 * @exception SQLException if parameterName does not correspond to a named |
|
1073 * parameter; if a database access error occurs or |
|
1074 * this method is called on a closed <code>CallableStatement</code> |
|
1075 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support |
|
1076 * this method |
|
1077 * @since 1.4 |
|
1078 */ |
|
1079 void setBinaryStream(String parameterName, java.io.InputStream x, |
|
1080 int length) throws SQLException; |
|
1081 |
|
1082 /** |
|
1083 * Sets the value of the designated parameter with the given object. |
|
1084 * |
|
1085 * <p>The given Java object will be converted to the given targetSqlType |
|
1086 * before being sent to the database. |
|
1087 * |
|
1088 * If the object has a custom mapping (is of a class implementing the |
|
1089 * interface <code>SQLData</code>), |
|
1090 * the JDBC driver should call the method <code>SQLData.writeSQL</code> to write it |
|
1091 * to the SQL data stream. |
|
1092 * If, on the other hand, the object is of a class implementing |
|
1093 * <code>Ref</code>, <code>Blob</code>, <code>Clob</code>, <code>NClob</code>, |
|
1094 * <code>Struct</code>, <code>java.net.URL</code>, |
|
1095 * or <code>Array</code>, the driver should pass it to the database as a |
|
1096 * value of the corresponding SQL type. |
|
1097 * <P> |
|
1098 * Note that this method may be used to pass datatabase- |
|
1099 * specific abstract data types. |
|
1100 * |
|
1101 * @param parameterName the name of the parameter |
|
1102 * @param x the object containing the input parameter value |
|
1103 * @param targetSqlType the SQL type (as defined in java.sql.Types) to be |
|
1104 * sent to the database. The scale argument may further qualify this type. |
|
1105 * @param scale for java.sql.Types.DECIMAL or java.sql.Types.NUMERIC types, |
|
1106 * this is the number of digits after the decimal point. For all other |
|
1107 * types, this value will be ignored. |
|
1108 * @exception SQLException if parameterName does not correspond to a named |
|
1109 * parameter; if a database access error occurs or |
|
1110 * this method is called on a closed <code>CallableStatement</code> |
|
1111 * @exception SQLFeatureNotSupportedException if |
|
1112 * the JDBC driver does not support the specified targetSqlType |
|
1113 * @see Types |
|
1114 * @see #getObject |
|
1115 * @since 1.4 |
|
1116 */ |
|
1117 void setObject(String parameterName, Object x, int targetSqlType, int scale) |
|
1118 throws SQLException; |
|
1119 |
|
1120 /** |
|
1121 * Sets the value of the designated parameter with the given object. |
|
1122 * |
|
1123 * This method is similar to {@link #setObject(String parameterName, |
|
1124 * Object x, int targetSqlType, int scaleOrLength)}, |
|
1125 * except that it assumes a scale of zero. |
|
1126 * |
|
1127 * @param parameterName the name of the parameter |
|
1128 * @param x the object containing the input parameter value |
|
1129 * @param targetSqlType the SQL type (as defined in java.sql.Types) to be |
|
1130 * sent to the database |
|
1131 * @exception SQLException if parameterName does not correspond to a named |
|
1132 * parameter; if a database access error occurs or |
|
1133 * this method is called on a closed <code>CallableStatement</code> |
|
1134 * @exception SQLFeatureNotSupportedException if |
|
1135 * the JDBC driver does not support the specified targetSqlType |
|
1136 * @see #getObject |
|
1137 * @since 1.4 |
|
1138 */ |
|
1139 void setObject(String parameterName, Object x, int targetSqlType) |
|
1140 throws SQLException; |
|
1141 |
|
1142 /** |
|
1143 * Sets the value of the designated parameter with the given object. |
|
1144 * |
|
1145 * <p>The JDBC specification specifies a standard mapping from |
|
1146 * Java <code>Object</code> types to SQL types. The given argument |
|
1147 * will be converted to the corresponding SQL type before being |
|
1148 * sent to the database. |
|
1149 * <p>Note that this method may be used to pass database- |
|
1150 * specific abstract data types, by using a driver-specific Java |
|
1151 * type. |
|
1152 * |
|
1153 * If the object is of a class implementing the interface <code>SQLData</code>, |
|
1154 * the JDBC driver should call the method <code>SQLData.writeSQL</code> |
|
1155 * to write it to the SQL data stream. |
|
1156 * If, on the other hand, the object is of a class implementing |
|
1157 * <code>Ref</code>, <code>Blob</code>, <code>Clob</code>, <code>NClob</code>, |
|
1158 * <code>Struct</code>, <code>java.net.URL</code>, |
|
1159 * or <code>Array</code>, the driver should pass it to the database as a |
|
1160 * value of the corresponding SQL type. |
|
1161 * <P> |
|
1162 * This method throws an exception if there is an ambiguity, for example, if the |
|
1163 * object is of a class implementing more than one of the interfaces named above. |
|
1164 * <p> |
|
1165 *<b>Note:</b> Not all databases allow for a non-typed Null to be sent to |
|
1166 * the backend. For maximum portability, the <code>setNull</code> or the |
|
1167 * <code>setObject(String parameterName, Object x, int sqlType)</code> |
|
1168 * method should be used |
|
1169 * instead of <code>setObject(String parameterName, Object x)</code>. |
|
1170 * |
|
1171 * @param parameterName the name of the parameter |
|
1172 * @param x the object containing the input parameter value |
|
1173 * @exception SQLException if parameterName does not correspond to a named |
|
1174 * parameter; if a database access error occurs, |
|
1175 * this method is called on a closed <code>CallableStatement</code> or if the given |
|
1176 * <code>Object</code> parameter is ambiguous |
|
1177 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support |
|
1178 * this method |
|
1179 * @see #getObject |
|
1180 * @since 1.4 |
|
1181 */ |
|
1182 void setObject(String parameterName, Object x) throws SQLException; |
|
1183 |
|
1184 |
|
1185 /** |
|
1186 * Sets the designated parameter to the given <code>Reader</code> |
|
1187 * object, which is the given number of characters long. |
|
1188 * When a very large UNICODE value is input to a <code>LONGVARCHAR</code> |
|
1189 * parameter, it may be more practical to send it via a |
|
1190 * <code>java.io.Reader</code> object. The data will be read from the stream |
|
1191 * as needed until end-of-file is reached. The JDBC driver will |
|
1192 * do any necessary conversion from UNICODE to the database char format. |
|
1193 * |
|
1194 * <P><B>Note:</B> This stream object can either be a standard |
|
1195 * Java stream object or your own subclass that implements the |
|
1196 * standard interface. |
|
1197 * |
|
1198 * @param parameterName the name of the parameter |
|
1199 * @param reader the <code>java.io.Reader</code> object that |
|
1200 * contains the UNICODE data used as the designated parameter |
|
1201 * @param length the number of characters in the stream |
|
1202 * @exception SQLException if parameterName does not correspond to a named |
|
1203 * parameter; if a database access error occurs or |
|
1204 * this method is called on a closed <code>CallableStatement</code> |
|
1205 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support |
|
1206 * this method |
|
1207 * @since 1.4 |
|
1208 */ |
|
1209 void setCharacterStream(String parameterName, |
|
1210 java.io.Reader reader, |
|
1211 int length) throws SQLException; |
|
1212 |
|
1213 /** |
|
1214 * Sets the designated parameter to the given <code>java.sql.Date</code> value, |
|
1215 * using the given <code>Calendar</code> object. The driver uses |
|
1216 * the <code>Calendar</code> object to construct an SQL <code>DATE</code> value, |
|
1217 * which the driver then sends to the database. With a |
|
1218 * a <code>Calendar</code> object, the driver can calculate the date |
|
1219 * taking into account a custom timezone. If no |
|
1220 * <code>Calendar</code> object is specified, the driver uses the default |
|
1221 * timezone, which is that of the virtual machine running the application. |
|
1222 * |
|
1223 * @param parameterName the name of the parameter |
|
1224 * @param x the parameter value |
|
1225 * @param cal the <code>Calendar</code> object the driver will use |
|
1226 * to construct the date |
|
1227 * @exception SQLException if parameterName does not correspond to a named |
|
1228 * parameter; if a database access error occurs or |
|
1229 * this method is called on a closed <code>CallableStatement</code> |
|
1230 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support |
|
1231 * this method |
|
1232 * @see #getDate |
|
1233 * @since 1.4 |
|
1234 */ |
|
1235 void setDate(String parameterName, java.sql.Date x, Calendar cal) |
|
1236 throws SQLException; |
|
1237 |
|
1238 /** |
|
1239 * Sets the designated parameter to the given <code>java.sql.Time</code> value, |
|
1240 * using the given <code>Calendar</code> object. The driver uses |
|
1241 * the <code>Calendar</code> object to construct an SQL <code>TIME</code> value, |
|
1242 * which the driver then sends to the database. With a |
|
1243 * a <code>Calendar</code> object, the driver can calculate the time |
|
1244 * taking into account a custom timezone. If no |
|
1245 * <code>Calendar</code> object is specified, the driver uses the default |
|
1246 * timezone, which is that of the virtual machine running the application. |
|
1247 * |
|
1248 * @param parameterName the name of the parameter |
|
1249 * @param x the parameter value |
|
1250 * @param cal the <code>Calendar</code> object the driver will use |
|
1251 * to construct the time |
|
1252 * @exception SQLException if parameterName does not correspond to a named |
|
1253 * parameter; if a database access error occurs or |
|
1254 * this method is called on a closed <code>CallableStatement</code> |
|
1255 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support |
|
1256 * this method |
|
1257 * @see #getTime |
|
1258 * @since 1.4 |
|
1259 */ |
|
1260 void setTime(String parameterName, java.sql.Time x, Calendar cal) |
|
1261 throws SQLException; |
|
1262 |
|
1263 /** |
|
1264 * Sets the designated parameter to the given <code>java.sql.Timestamp</code> value, |
|
1265 * using the given <code>Calendar</code> object. The driver uses |
|
1266 * the <code>Calendar</code> object to construct an SQL <code>TIMESTAMP</code> value, |
|
1267 * which the driver then sends to the database. With a |
|
1268 * a <code>Calendar</code> object, the driver can calculate the timestamp |
|
1269 * taking into account a custom timezone. If no |
|
1270 * <code>Calendar</code> object is specified, the driver uses the default |
|
1271 * timezone, which is that of the virtual machine running the application. |
|
1272 * |
|
1273 * @param parameterName the name of the parameter |
|
1274 * @param x the parameter value |
|
1275 * @param cal the <code>Calendar</code> object the driver will use |
|
1276 * to construct the timestamp |
|
1277 * @exception SQLException if parameterName does not correspond to a named |
|
1278 * parameter; if a database access error occurs or |
|
1279 * this method is called on a closed <code>CallableStatement</code> |
|
1280 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support |
|
1281 * this method |
|
1282 * @see #getTimestamp |
|
1283 * @since 1.4 |
|
1284 */ |
|
1285 void setTimestamp(String parameterName, java.sql.Timestamp x, Calendar cal) |
|
1286 throws SQLException; |
|
1287 |
|
1288 /** |
|
1289 * Sets the designated parameter to SQL <code>NULL</code>. |
|
1290 * This version of the method <code>setNull</code> should |
|
1291 * be used for user-defined types and REF type parameters. Examples |
|
1292 * of user-defined types include: STRUCT, DISTINCT, JAVA_OBJECT, and |
|
1293 * named array types. |
|
1294 * |
|
1295 * <P><B>Note:</B> To be portable, applications must give the |
|
1296 * SQL type code and the fully-qualified SQL type name when specifying |
|
1297 * a NULL user-defined or REF parameter. In the case of a user-defined type |
|
1298 * the name is the type name of the parameter itself. For a REF |
|
1299 * parameter, the name is the type name of the referenced type. |
|
1300 * <p> |
|
1301 * Although it is intended for user-defined and Ref parameters, |
|
1302 * this method may be used to set a null parameter of any JDBC type. |
|
1303 * If the parameter does not have a user-defined or REF type, the given |
|
1304 * typeName is ignored. |
|
1305 * |
|
1306 * |
|
1307 * @param parameterName the name of the parameter |
|
1308 * @param sqlType a value from <code>java.sql.Types</code> |
|
1309 * @param typeName the fully-qualified name of an SQL user-defined type; |
|
1310 * ignored if the parameter is not a user-defined type or |
|
1311 * SQL <code>REF</code> value |
|
1312 * @exception SQLException if parameterName does not correspond to a named |
|
1313 * parameter; if a database access error occurs or |
|
1314 * this method is called on a closed <code>CallableStatement</code> |
|
1315 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support |
|
1316 * this method |
|
1317 * @since 1.4 |
|
1318 */ |
|
1319 void setNull (String parameterName, int sqlType, String typeName) |
|
1320 throws SQLException; |
|
1321 |
|
1322 /** |
|
1323 * Retrieves the value of a JDBC <code>CHAR</code>, <code>VARCHAR</code>, |
|
1324 * or <code>LONGVARCHAR</code> parameter as a <code>String</code> in |
|
1325 * the Java programming language. |
|
1326 * <p> |
|
1327 * For the fixed-length type JDBC <code>CHAR</code>, |
|
1328 * the <code>String</code> object |
|
1329 * returned has exactly the same value the SQL |
|
1330 * <code>CHAR</code> value had in the |
|
1331 * database, including any padding added by the database. |
|
1332 * @param parameterName the name of the parameter |
|
1333 * @return the parameter value. If the value is SQL <code>NULL</code>, the result |
|
1334 * is <code>null</code>. |
|
1335 * @exception SQLException if parameterName does not correspond to a named |
|
1336 * parameter; if a database access error occurs or |
|
1337 * this method is called on a closed <code>CallableStatement</code> |
|
1338 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support |
|
1339 * this method |
|
1340 * @see #setString |
|
1341 * @since 1.4 |
|
1342 */ |
|
1343 String getString(String parameterName) throws SQLException; |
|
1344 |
|
1345 /** |
|
1346 * Retrieves the value of a JDBC <code>BIT</code> or <code>BOOLEAN</code> |
|
1347 * parameter as a |
|
1348 * <code>boolean</code> in the Java programming language. |
|
1349 * @param parameterName the name of the parameter |
|
1350 * @return the parameter value. If the value is SQL <code>NULL</code>, the result |
|
1351 * is <code>false</code>. |
|
1352 * @exception SQLException if parameterName does not correspond to a named |
|
1353 * parameter; if a database access error occurs or |
|
1354 * this method is called on a closed <code>CallableStatement</code> |
|
1355 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support |
|
1356 * this method |
|
1357 * @see #setBoolean |
|
1358 * @since 1.4 |
|
1359 */ |
|
1360 boolean getBoolean(String parameterName) throws SQLException; |
|
1361 |
|
1362 /** |
|
1363 * Retrieves the value of a JDBC <code>TINYINT</code> parameter as a <code>byte</code> |
|
1364 * in the Java programming language. |
|
1365 * @param parameterName the name of the parameter |
|
1366 * @return the parameter value. If the value is SQL <code>NULL</code>, the result |
|
1367 * is <code>0</code>. |
|
1368 * @exception SQLException if parameterName does not correspond to a named |
|
1369 * parameter; if a database access error occurs or |
|
1370 * this method is called on a closed <code>CallableStatement</code> |
|
1371 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support |
|
1372 * this method |
|
1373 * @see #setByte |
|
1374 * @since 1.4 |
|
1375 */ |
|
1376 byte getByte(String parameterName) throws SQLException; |
|
1377 |
|
1378 /** |
|
1379 * Retrieves the value of a JDBC <code>SMALLINT</code> parameter as a <code>short</code> |
|
1380 * in the Java programming language. |
|
1381 * @param parameterName the name of the parameter |
|
1382 * @return the parameter value. If the value is SQL <code>NULL</code>, the result |
|
1383 * is <code>0</code>. |
|
1384 * @exception SQLException if parameterName does not correspond to a named |
|
1385 * parameter; if a database access error occurs or |
|
1386 * this method is called on a closed <code>CallableStatement</code> |
|
1387 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support |
|
1388 * this method |
|
1389 * @see #setShort |
|
1390 * @since 1.4 |
|
1391 */ |
|
1392 short getShort(String parameterName) throws SQLException; |
|
1393 |
|
1394 /** |
|
1395 * Retrieves the value of a JDBC <code>INTEGER</code> parameter as an <code>int</code> |
|
1396 * in the Java programming language. |
|
1397 * |
|
1398 * @param parameterName the name of the parameter |
|
1399 * @return the parameter value. If the value is SQL <code>NULL</code>, |
|
1400 * the result is <code>0</code>. |
|
1401 * @exception SQLException if parameterName does not correspond to a named |
|
1402 * parameter; if a database access error occurs or |
|
1403 * this method is called on a closed <code>CallableStatement</code> |
|
1404 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support |
|
1405 * this method |
|
1406 * @see #setInt |
|
1407 * @since 1.4 |
|
1408 */ |
|
1409 int getInt(String parameterName) throws SQLException; |
|
1410 |
|
1411 /** |
|
1412 * Retrieves the value of a JDBC <code>BIGINT</code> parameter as a <code>long</code> |
|
1413 * in the Java programming language. |
|
1414 * |
|
1415 * @param parameterName the name of the parameter |
|
1416 * @return the parameter value. If the value is SQL <code>NULL</code>, |
|
1417 * the result is <code>0</code>. |
|
1418 * @exception SQLException if parameterName does not correspond to a named |
|
1419 * parameter; if a database access error occurs or |
|
1420 * this method is called on a closed <code>CallableStatement</code> |
|
1421 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support |
|
1422 * this method |
|
1423 * @see #setLong |
|
1424 * @since 1.4 |
|
1425 */ |
|
1426 long getLong(String parameterName) throws SQLException; |
|
1427 |
|
1428 /** |
|
1429 * Retrieves the value of a JDBC <code>FLOAT</code> parameter as a <code>float</code> |
|
1430 * in the Java programming language. |
|
1431 * @param parameterName the name of the parameter |
|
1432 * @return the parameter value. If the value is SQL <code>NULL</code>, |
|
1433 * the result is <code>0</code>. |
|
1434 * @exception SQLException if parameterName does not correspond to a named |
|
1435 * parameter; if a database access error occurs or |
|
1436 * this method is called on a closed <code>CallableStatement</code> |
|
1437 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support |
|
1438 * this method |
|
1439 * @see #setFloat |
|
1440 * @since 1.4 |
|
1441 */ |
|
1442 float getFloat(String parameterName) throws SQLException; |
|
1443 |
|
1444 /** |
|
1445 * Retrieves the value of a JDBC <code>DOUBLE</code> parameter as a <code>double</code> |
|
1446 * in the Java programming language. |
|
1447 * @param parameterName the name of the parameter |
|
1448 * @return the parameter value. If the value is SQL <code>NULL</code>, |
|
1449 * the result is <code>0</code>. |
|
1450 * @exception SQLException if parameterName does not correspond to a named |
|
1451 * parameter; if a database access error occurs or |
|
1452 * this method is called on a closed <code>CallableStatement</code> |
|
1453 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support |
|
1454 * this method |
|
1455 * @see #setDouble |
|
1456 * @since 1.4 |
|
1457 */ |
|
1458 double getDouble(String parameterName) throws SQLException; |
|
1459 |
|
1460 /** |
|
1461 * Retrieves the value of a JDBC <code>BINARY</code> or <code>VARBINARY</code> |
|
1462 * parameter as an array of <code>byte</code> values in the Java |
|
1463 * programming language. |
|
1464 * @param parameterName the name of the parameter |
|
1465 * @return the parameter value. If the value is SQL <code>NULL</code>, the result is |
|
1466 * <code>null</code>. |
|
1467 * @exception SQLException if parameterName does not correspond to a named |
|
1468 * parameter; if a database access error occurs or |
|
1469 * this method is called on a closed <code>CallableStatement</code> |
|
1470 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support |
|
1471 * this method |
|
1472 * @see #setBytes |
|
1473 * @since 1.4 |
|
1474 */ |
|
1475 byte[] getBytes(String parameterName) throws SQLException; |
|
1476 |
|
1477 /** |
|
1478 * Retrieves the value of a JDBC <code>DATE</code> parameter as a |
|
1479 * <code>java.sql.Date</code> object. |
|
1480 * @param parameterName the name of the parameter |
|
1481 * @return the parameter value. If the value is SQL <code>NULL</code>, the result |
|
1482 * is <code>null</code>. |
|
1483 * @exception SQLException if parameterName does not correspond to a named |
|
1484 * parameter; if a database access error occurs or |
|
1485 * this method is called on a closed <code>CallableStatement</code> |
|
1486 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support |
|
1487 * this method |
|
1488 * @see #setDate |
|
1489 * @since 1.4 |
|
1490 */ |
|
1491 java.sql.Date getDate(String parameterName) throws SQLException; |
|
1492 |
|
1493 /** |
|
1494 * Retrieves the value of a JDBC <code>TIME</code> parameter as a |
|
1495 * <code>java.sql.Time</code> object. |
|
1496 * @param parameterName the name of the parameter |
|
1497 * @return the parameter value. If the value is SQL <code>NULL</code>, the result |
|
1498 * is <code>null</code>. |
|
1499 * @exception SQLException if parameterName does not correspond to a named |
|
1500 * parameter; if a database access error occurs or |
|
1501 * this method is called on a closed <code>CallableStatement</code> |
|
1502 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support |
|
1503 * this method |
|
1504 * @see #setTime |
|
1505 * @since 1.4 |
|
1506 */ |
|
1507 java.sql.Time getTime(String parameterName) throws SQLException; |
|
1508 |
|
1509 /** |
|
1510 * Retrieves the value of a JDBC <code>TIMESTAMP</code> parameter as a |
|
1511 * <code>java.sql.Timestamp</code> object. |
|
1512 * @param parameterName the name of the parameter |
|
1513 * @return the parameter value. If the value is SQL <code>NULL</code>, the result |
|
1514 * is <code>null</code>. |
|
1515 * @exception SQLException if parameterName does not correspond to a named |
|
1516 * parameter; if a database access error occurs or |
|
1517 * this method is called on a closed <code>CallableStatement</code> |
|
1518 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support |
|
1519 * this method |
|
1520 * @see #setTimestamp |
|
1521 * @since 1.4 |
|
1522 */ |
|
1523 java.sql.Timestamp getTimestamp(String parameterName) throws SQLException; |
|
1524 |
|
1525 /** |
|
1526 * Retrieves the value of a parameter as an <code>Object</code> in the Java |
|
1527 * programming language. If the value is an SQL <code>NULL</code>, the |
|
1528 * driver returns a Java <code>null</code>. |
|
1529 * <p> |
|
1530 * This method returns a Java object whose type corresponds to the JDBC |
|
1531 * type that was registered for this parameter using the method |
|
1532 * <code>registerOutParameter</code>. By registering the target JDBC |
|
1533 * type as <code>java.sql.Types.OTHER</code>, this method can be used |
|
1534 * to read database-specific abstract data types. |
|
1535 * @param parameterName the name of the parameter |
|
1536 * @return A <code>java.lang.Object</code> holding the OUT parameter value. |
|
1537 * @exception SQLException if parameterName does not correspond to a named |
|
1538 * parameter; if a database access error occurs or |
|
1539 * this method is called on a closed <code>CallableStatement</code> |
|
1540 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support |
|
1541 * this method |
|
1542 * @see Types |
|
1543 * @see #setObject |
|
1544 * @since 1.4 |
|
1545 */ |
|
1546 Object getObject(String parameterName) throws SQLException; |
|
1547 |
|
1548 /** |
|
1549 * Retrieves the value of a JDBC <code>NUMERIC</code> parameter as a |
|
1550 * <code>java.math.BigDecimal</code> object with as many digits to the |
|
1551 * right of the decimal point as the value contains. |
|
1552 * @param parameterName the name of the parameter |
|
1553 * @return the parameter value in full precision. If the value is |
|
1554 * SQL <code>NULL</code>, the result is <code>null</code>. |
|
1555 * @exception SQLException if parameterName does not correspond to a named |
|
1556 * parameter; if a database access error occurs or |
|
1557 * this method is called on a closed <code>CallableStatement</code> |
|
1558 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support |
|
1559 * this method |
|
1560 * @see #setBigDecimal |
|
1561 * @since 1.4 |
|
1562 */ |
|
1563 BigDecimal getBigDecimal(String parameterName) throws SQLException; |
|
1564 |
|
1565 /** |
|
1566 * Returns an object representing the value of OUT parameter |
|
1567 * <code>parameterName</code> and uses <code>map</code> for the custom |
|
1568 * mapping of the parameter value. |
|
1569 * <p> |
|
1570 * This method returns a Java object whose type corresponds to the |
|
1571 * JDBC type that was registered for this parameter using the method |
|
1572 * <code>registerOutParameter</code>. By registering the target |
|
1573 * JDBC type as <code>java.sql.Types.OTHER</code>, this method can |
|
1574 * be used to read database-specific abstract data types. |
|
1575 * @param parameterName the name of the parameter |
|
1576 * @param map the mapping from SQL type names to Java classes |
|
1577 * @return a <code>java.lang.Object</code> holding the OUT parameter value |
|
1578 * @exception SQLException if parameterName does not correspond to a named |
|
1579 * parameter; if a database access error occurs or |
|
1580 * this method is called on a closed <code>CallableStatement</code> |
|
1581 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support |
|
1582 * this method |
|
1583 * @see #setObject |
|
1584 * @since 1.4 |
|
1585 */ |
|
1586 Object getObject(String parameterName, java.util.Map<String,Class<?>> map) |
|
1587 throws SQLException; |
|
1588 |
|
1589 /** |
|
1590 * Retrieves the value of a JDBC <code>REF(<structured-type>)</code> |
|
1591 * parameter as a {@link java.sql.Ref} object in the Java programming language. |
|
1592 * |
|
1593 * @param parameterName the name of the parameter |
|
1594 * @return the parameter value as a <code>Ref</code> object in the |
|
1595 * Java programming language. If the value was SQL <code>NULL</code>, |
|
1596 * the value <code>null</code> is returned. |
|
1597 * @exception SQLException if parameterName does not correspond to a named |
|
1598 * parameter; if a database access error occurs or |
|
1599 * this method is called on a closed <code>CallableStatement</code> |
|
1600 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support |
|
1601 * this method |
|
1602 * @since 1.4 |
|
1603 */ |
|
1604 Ref getRef (String parameterName) throws SQLException; |
|
1605 |
|
1606 /** |
|
1607 * Retrieves the value of a JDBC <code>BLOB</code> parameter as a |
|
1608 * {@link java.sql.Blob} object in the Java programming language. |
|
1609 * |
|
1610 * @param parameterName the name of the parameter |
|
1611 * @return the parameter value as a <code>Blob</code> object in the |
|
1612 * Java programming language. If the value was SQL <code>NULL</code>, |
|
1613 * the value <code>null</code> is returned. |
|
1614 * @exception SQLException if parameterName does not correspond to a named |
|
1615 * parameter; if a database access error occurs or |
|
1616 * this method is called on a closed <code>CallableStatement</code> |
|
1617 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support |
|
1618 * this method |
|
1619 * @since 1.4 |
|
1620 */ |
|
1621 Blob getBlob (String parameterName) throws SQLException; |
|
1622 |
|
1623 /** |
|
1624 * Retrieves the value of a JDBC <code>CLOB</code> parameter as a |
|
1625 * <code>java.sql.Clob</code> object in the Java programming language. |
|
1626 * @param parameterName the name of the parameter |
|
1627 * @return the parameter value as a <code>Clob</code> object in the |
|
1628 * Java programming language. If the value was SQL <code>NULL</code>, |
|
1629 * the value <code>null</code> is returned. |
|
1630 * @exception SQLException if parameterName does not correspond to a named |
|
1631 * parameter; if a database access error occurs or |
|
1632 * this method is called on a closed <code>CallableStatement</code> |
|
1633 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support |
|
1634 * this method |
|
1635 * @since 1.4 |
|
1636 */ |
|
1637 Clob getClob (String parameterName) throws SQLException; |
|
1638 |
|
1639 /** |
|
1640 * Retrieves the value of a JDBC <code>ARRAY</code> parameter as an |
|
1641 * {@link java.sql.Array} object in the Java programming language. |
|
1642 * |
|
1643 * @param parameterName the name of the parameter |
|
1644 * @return the parameter value as an <code>Array</code> object in |
|
1645 * Java programming language. If the value was SQL <code>NULL</code>, |
|
1646 * the value <code>null</code> is returned. |
|
1647 * @exception SQLException if parameterName does not correspond to a named |
|
1648 * parameter; if a database access error occurs or |
|
1649 * this method is called on a closed <code>CallableStatement</code> |
|
1650 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support |
|
1651 * this method |
|
1652 * @since 1.4 |
|
1653 */ |
|
1654 Array getArray (String parameterName) throws SQLException; |
|
1655 |
|
1656 /** |
|
1657 * Retrieves the value of a JDBC <code>DATE</code> parameter as a |
|
1658 * <code>java.sql.Date</code> object, using |
|
1659 * the given <code>Calendar</code> object |
|
1660 * to construct the date. |
|
1661 * With a <code>Calendar</code> object, the driver |
|
1662 * can calculate the date taking into account a custom timezone and locale. |
|
1663 * If no <code>Calendar</code> object is specified, the driver uses the |
|
1664 * default timezone and locale. |
|
1665 * |
|
1666 * @param parameterName the name of the parameter |
|
1667 * @param cal the <code>Calendar</code> object the driver will use |
|
1668 * to construct the date |
|
1669 * @return the parameter value. If the value is SQL <code>NULL</code>, |
|
1670 * the result is <code>null</code>. |
|
1671 * @exception SQLException if parameterName does not correspond to a named |
|
1672 * parameter; if a database access error occurs or |
|
1673 * this method is called on a closed <code>CallableStatement</code> |
|
1674 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support |
|
1675 * this method |
|
1676 * @see #setDate |
|
1677 * @since 1.4 |
|
1678 */ |
|
1679 java.sql.Date getDate(String parameterName, Calendar cal) |
|
1680 throws SQLException; |
|
1681 |
|
1682 /** |
|
1683 * Retrieves the value of a JDBC <code>TIME</code> parameter as a |
|
1684 * <code>java.sql.Time</code> object, using |
|
1685 * the given <code>Calendar</code> object |
|
1686 * to construct the time. |
|
1687 * With a <code>Calendar</code> object, the driver |
|
1688 * can calculate the time taking into account a custom timezone and locale. |
|
1689 * If no <code>Calendar</code> object is specified, the driver uses the |
|
1690 * default timezone and locale. |
|
1691 * |
|
1692 * @param parameterName the name of the parameter |
|
1693 * @param cal the <code>Calendar</code> object the driver will use |
|
1694 * to construct the time |
|
1695 * @return the parameter value; if the value is SQL <code>NULL</code>, the result is |
|
1696 * <code>null</code>. |
|
1697 * @exception SQLException if parameterName does not correspond to a named |
|
1698 * parameter; if a database access error occurs or |
|
1699 * this method is called on a closed <code>CallableStatement</code> |
|
1700 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support |
|
1701 * this method |
|
1702 * @see #setTime |
|
1703 * @since 1.4 |
|
1704 */ |
|
1705 java.sql.Time getTime(String parameterName, Calendar cal) |
|
1706 throws SQLException; |
|
1707 |
|
1708 /** |
|
1709 * Retrieves the value of a JDBC <code>TIMESTAMP</code> parameter as a |
|
1710 * <code>java.sql.Timestamp</code> object, using |
|
1711 * the given <code>Calendar</code> object to construct |
|
1712 * the <code>Timestamp</code> object. |
|
1713 * With a <code>Calendar</code> object, the driver |
|
1714 * can calculate the timestamp taking into account a custom timezone and locale. |
|
1715 * If no <code>Calendar</code> object is specified, the driver uses the |
|
1716 * default timezone and locale. |
|
1717 * |
|
1718 * |
|
1719 * @param parameterName the name of the parameter |
|
1720 * @param cal the <code>Calendar</code> object the driver will use |
|
1721 * to construct the timestamp |
|
1722 * @return the parameter value. If the value is SQL <code>NULL</code>, the result is |
|
1723 * <code>null</code>. |
|
1724 * @exception SQLException if parameterName does not correspond to a named |
|
1725 * parameter; if a database access error occurs or |
|
1726 * this method is called on a closed <code>CallableStatement</code> |
|
1727 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support |
|
1728 * this method |
|
1729 * @see #setTimestamp |
|
1730 * @since 1.4 |
|
1731 */ |
|
1732 java.sql.Timestamp getTimestamp(String parameterName, Calendar cal) |
|
1733 throws SQLException; |
|
1734 |
|
1735 /** |
|
1736 * Retrieves the value of a JDBC <code>DATALINK</code> parameter as a |
|
1737 * <code>java.net.URL</code> object. |
|
1738 * |
|
1739 * @param parameterName the name of the parameter |
|
1740 * @return the parameter value as a <code>java.net.URL</code> object in the |
|
1741 * Java programming language. If the value was SQL <code>NULL</code>, the |
|
1742 * value <code>null</code> is returned. |
|
1743 * @exception SQLException if parameterName does not correspond to a named |
|
1744 * parameter; if a database access error occurs, |
|
1745 * this method is called on a closed <code>CallableStatement</code>, |
|
1746 * or if there is a problem with the URL |
|
1747 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support |
|
1748 * this method |
|
1749 * @see #setURL |
|
1750 * @since 1.4 |
|
1751 */ |
|
1752 java.net.URL getURL(String parameterName) throws SQLException; |
|
1753 |
|
1754 //------------------------- JDBC 4.0 ----------------------------------- |
|
1755 |
|
1756 /** |
|
1757 * Retrieves the value of the designated JDBC <code>ROWID</code> parameter as a |
|
1758 * <code>java.sql.RowId</code> object. |
|
1759 * |
|
1760 * @param parameterIndex the first parameter is 1, the second is 2,... |
|
1761 * @return a <code>RowId</code> object that represents the JDBC <code>ROWID</code> |
|
1762 * value is used as the designated parameter. If the parameter contains |
|
1763 * a SQL <code>NULL</code>, then a <code>null</code> value is returned. |
|
1764 * @throws SQLException if the parameterIndex is not valid; |
|
1765 * if a database access error occurs or |
|
1766 * this method is called on a closed <code>CallableStatement</code> |
|
1767 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support |
|
1768 * this method |
|
1769 * @since 1.6 |
|
1770 */ |
|
1771 RowId getRowId(int parameterIndex) throws SQLException; |
|
1772 |
|
1773 /** |
|
1774 * Retrieves the value of the designated JDBC <code>ROWID</code> parameter as a |
|
1775 * <code>java.sql.RowId</code> object. |
|
1776 * |
|
1777 * @param parameterName the name of the parameter |
|
1778 * @return a <code>RowId</code> object that represents the JDBC <code>ROWID</code> |
|
1779 * value is used as the designated parameter. If the parameter contains |
|
1780 * a SQL <code>NULL</code>, then a <code>null</code> value is returned. |
|
1781 * @throws SQLException if parameterName does not correspond to a named |
|
1782 * parameter; if a database access error occurs or |
|
1783 * this method is called on a closed <code>CallableStatement</code> |
|
1784 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support |
|
1785 * this method |
|
1786 * @since 1.6 |
|
1787 */ |
|
1788 RowId getRowId(String parameterName) throws SQLException; |
|
1789 |
|
1790 /** |
|
1791 * Sets the designated parameter to the given <code>java.sql.RowId</code> object. The |
|
1792 * driver converts this to a SQL <code>ROWID</code> when it sends it to the |
|
1793 * database. |
|
1794 * |
|
1795 * @param parameterName the name of the parameter |
|
1796 * @param x the parameter value |
|
1797 * @throws SQLException if parameterName does not correspond to a named |
|
1798 * parameter; if a database access error occurs or |
|
1799 * this method is called on a closed <code>CallableStatement</code> |
|
1800 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support |
|
1801 * this method |
|
1802 * @since 1.6 |
|
1803 */ |
|
1804 void setRowId(String parameterName, RowId x) throws SQLException; |
|
1805 |
|
1806 /** |
|
1807 * Sets the designated parameter to the given <code>String</code> object. |
|
1808 * The driver converts this to a SQL <code>NCHAR</code> or |
|
1809 * <code>NVARCHAR</code> or <code>LONGNVARCHAR</code> |
|
1810 * @param parameterName the name of the parameter to be set |
|
1811 * @param value the parameter value |
|
1812 * @throws SQLException if parameterName does not correspond to a named |
|
1813 * parameter; if the driver does not support national |
|
1814 * character sets; if the driver can detect that a data conversion |
|
1815 * error could occur; if a database access error occurs or |
|
1816 * this method is called on a closed <code>CallableStatement</code> |
|
1817 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support |
|
1818 * this method |
|
1819 * @since 1.6 |
|
1820 */ |
|
1821 void setNString(String parameterName, String value) |
|
1822 throws SQLException; |
|
1823 |
|
1824 /** |
|
1825 * Sets the designated parameter to a <code>Reader</code> object. The |
|
1826 * <code>Reader</code> reads the data till end-of-file is reached. The |
|
1827 * driver does the necessary conversion from Java character format to |
|
1828 * the national character set in the database. |
|
1829 * @param parameterName the name of the parameter to be set |
|
1830 * @param value the parameter value |
|
1831 * @param length the number of characters in the parameter data. |
|
1832 * @throws SQLException if parameterName does not correspond to a named |
|
1833 * parameter; if the driver does not support national |
|
1834 * character sets; if the driver can detect that a data conversion |
|
1835 * error could occur; if a database access error occurs or |
|
1836 * this method is called on a closed <code>CallableStatement</code> |
|
1837 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support |
|
1838 * this method |
|
1839 * @since 1.6 |
|
1840 */ |
|
1841 void setNCharacterStream(String parameterName, Reader value, long length) |
|
1842 throws SQLException; |
|
1843 |
|
1844 /** |
|
1845 * Sets the designated parameter to a <code>java.sql.NClob</code> object. The object |
|
1846 * implements the <code>java.sql.NClob</code> interface. This <code>NClob</code> |
|
1847 * object maps to a SQL <code>NCLOB</code>. |
|
1848 * @param parameterName the name of the parameter to be set |
|
1849 * @param value the parameter value |
|
1850 * @throws SQLException if parameterName does not correspond to a named |
|
1851 * parameter; if the driver does not support national |
|
1852 * character sets; if the driver can detect that a data conversion |
|
1853 * error could occur; if a database access error occurs or |
|
1854 * this method is called on a closed <code>CallableStatement</code> |
|
1855 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support |
|
1856 * this method |
|
1857 * @since 1.6 |
|
1858 */ |
|
1859 void setNClob(String parameterName, NClob value) throws SQLException; |
|
1860 |
|
1861 /** |
|
1862 * Sets the designated parameter to a <code>Reader</code> object. The <code>reader</code> must contain the number |
|
1863 * of characters specified by length otherwise a <code>SQLException</code> will be |
|
1864 * generated when the <code>CallableStatement</code> is executed. |
|
1865 * This method differs from the <code>setCharacterStream (int, Reader, int)</code> method |
|
1866 * because it informs the driver that the parameter value should be sent to |
|
1867 * the server as a <code>CLOB</code>. When the <code>setCharacterStream</code> method is used, the |
|
1868 * driver may have to do extra work to determine whether the parameter |
|
1869 * data should be send to the server as a <code>LONGVARCHAR</code> or a <code>CLOB</code> |
|
1870 * @param parameterName the name of the parameter to be set |
|
1871 * @param reader An object that contains the data to set the parameter value to. |
|
1872 * @param length the number of characters in the parameter data. |
|
1873 * @throws SQLException if parameterName does not correspond to a named |
|
1874 * parameter; if the length specified is less than zero; |
|
1875 * a database access error occurs or |
|
1876 * this method is called on a closed <code>CallableStatement</code> |
|
1877 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support |
|
1878 * this method |
|
1879 * |
|
1880 * @since 1.6 |
|
1881 */ |
|
1882 void setClob(String parameterName, Reader reader, long length) |
|
1883 throws SQLException; |
|
1884 |
|
1885 /** |
|
1886 * Sets the designated parameter to an {@code InputStream} object. |
|
1887 * The <code>Inputstream</code> must contain the number |
|
1888 * of characters specified by length, otherwise a <code>SQLException</code> will be |
|
1889 * generated when the <code>CallableStatement</code> is executed. |
|
1890 * This method differs from the <code>setBinaryStream (int, InputStream, int)</code> |
|
1891 * method because it informs the driver that the parameter value should be |
|
1892 * sent to the server as a <code>BLOB</code>. When the <code>setBinaryStream</code> method is used, |
|
1893 * the driver may have to do extra work to determine whether the parameter |
|
1894 * data should be sent to the server as a <code>LONGVARBINARY</code> or a <code>BLOB</code> |
|
1895 * |
|
1896 * @param parameterName the name of the parameter to be set |
|
1897 * the second is 2, ... |
|
1898 * |
|
1899 * @param inputStream An object that contains the data to set the parameter |
|
1900 * value to. |
|
1901 * @param length the number of bytes in the parameter data. |
|
1902 * @throws SQLException if parameterName does not correspond to a named |
|
1903 * parameter; if the length specified |
|
1904 * is less than zero; if the number of bytes in the {@code InputStream} |
|
1905 * does not match the specified length; if a database access error occurs or |
|
1906 * this method is called on a closed <code>CallableStatement</code> |
|
1907 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support |
|
1908 * this method |
|
1909 * |
|
1910 * @since 1.6 |
|
1911 */ |
|
1912 void setBlob(String parameterName, InputStream inputStream, long length) |
|
1913 throws SQLException; |
|
1914 /** |
|
1915 * Sets the designated parameter to a <code>Reader</code> object. The <code>reader</code> must contain the number |
|
1916 * of characters specified by length otherwise a <code>SQLException</code> will be |
|
1917 * generated when the <code>CallableStatement</code> is executed. |
|
1918 * This method differs from the <code>setCharacterStream (int, Reader, int)</code> method |
|
1919 * because it informs the driver that the parameter value should be sent to |
|
1920 * the server as a <code>NCLOB</code>. When the <code>setCharacterStream</code> method is used, the |
|
1921 * driver may have to do extra work to determine whether the parameter |
|
1922 * data should be send to the server as a <code>LONGNVARCHAR</code> or a <code>NCLOB</code> |
|
1923 * |
|
1924 * @param parameterName the name of the parameter to be set |
|
1925 * @param reader An object that contains the data to set the parameter value to. |
|
1926 * @param length the number of characters in the parameter data. |
|
1927 * @throws SQLException if parameterName does not correspond to a named |
|
1928 * parameter; if the length specified is less than zero; |
|
1929 * if the driver does not support national |
|
1930 * character sets; if the driver can detect that a data conversion |
|
1931 * error could occur; if a database access error occurs or |
|
1932 * this method is called on a closed <code>CallableStatement</code> |
|
1933 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support |
|
1934 * this method |
|
1935 * @since 1.6 |
|
1936 */ |
|
1937 void setNClob(String parameterName, Reader reader, long length) |
|
1938 throws SQLException; |
|
1939 |
|
1940 /** |
|
1941 * Retrieves the value of the designated JDBC <code>NCLOB</code> parameter as a |
|
1942 * <code>java.sql.NClob</code> object in the Java programming language. |
|
1943 * |
|
1944 * @param parameterIndex the first parameter is 1, the second is 2, and |
|
1945 * so on |
|
1946 * @return the parameter value as a <code>NClob</code> object in the |
|
1947 * Java programming language. If the value was SQL <code>NULL</code>, the |
|
1948 * value <code>null</code> is returned. |
|
1949 * @exception SQLException if the parameterIndex is not valid; |
|
1950 * if the driver does not support national |
|
1951 * character sets; if the driver can detect that a data conversion |
|
1952 * error could occur; if a database access error occurs or |
|
1953 * this method is called on a closed <code>CallableStatement</code> |
|
1954 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support |
|
1955 * this method |
|
1956 * @since 1.6 |
|
1957 */ |
|
1958 NClob getNClob (int parameterIndex) throws SQLException; |
|
1959 |
|
1960 |
|
1961 /** |
|
1962 * Retrieves the value of a JDBC <code>NCLOB</code> parameter as a |
|
1963 * <code>java.sql.NClob</code> object in the Java programming language. |
|
1964 * @param parameterName the name of the parameter |
|
1965 * @return the parameter value as a <code>NClob</code> object in the |
|
1966 * Java programming language. If the value was SQL <code>NULL</code>, |
|
1967 * the value <code>null</code> is returned. |
|
1968 * @exception SQLException if parameterName does not correspond to a named |
|
1969 * parameter; if the driver does not support national |
|
1970 * character sets; if the driver can detect that a data conversion |
|
1971 * error could occur; if a database access error occurs or |
|
1972 * this method is called on a closed <code>CallableStatement</code> |
|
1973 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support |
|
1974 * this method |
|
1975 * @since 1.6 |
|
1976 */ |
|
1977 NClob getNClob (String parameterName) throws SQLException; |
|
1978 |
|
1979 /** |
|
1980 * Sets the designated parameter to the given <code>java.sql.SQLXML</code> object. The driver converts this to an |
|
1981 * <code>SQL XML</code> value when it sends it to the database. |
|
1982 * |
|
1983 * @param parameterName the name of the parameter |
|
1984 * @param xmlObject a <code>SQLXML</code> object that maps an <code>SQL XML</code> value |
|
1985 * @throws SQLException if parameterName does not correspond to a named |
|
1986 * parameter; if a database access error occurs; |
|
1987 * this method is called on a closed <code>CallableStatement</code> or |
|
1988 * the <code>java.xml.transform.Result</code>, |
|
1989 * <code>Writer</code> or <code>OutputStream</code> has not been closed for the <code>SQLXML</code> object |
|
1990 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support |
|
1991 * this method |
|
1992 * |
|
1993 * @since 1.6 |
|
1994 */ |
|
1995 void setSQLXML(String parameterName, SQLXML xmlObject) throws SQLException; |
|
1996 |
|
1997 /** |
|
1998 * Retrieves the value of the designated <code>SQL XML</code> parameter as a |
|
1999 * <code>java.sql.SQLXML</code> object in the Java programming language. |
|
2000 * @param parameterIndex index of the first parameter is 1, the second is 2, ... |
|
2001 * @return a <code>SQLXML</code> object that maps an <code>SQL XML</code> value |
|
2002 * @throws SQLException if the parameterIndex is not valid; |
|
2003 * if a database access error occurs or |
|
2004 * this method is called on a closed <code>CallableStatement</code> |
|
2005 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support |
|
2006 * this method |
|
2007 * @since 1.6 |
|
2008 */ |
|
2009 SQLXML getSQLXML(int parameterIndex) throws SQLException; |
|
2010 |
|
2011 /** |
|
2012 * Retrieves the value of the designated <code>SQL XML</code> parameter as a |
|
2013 * <code>java.sql.SQLXML</code> object in the Java programming language. |
|
2014 * @param parameterName the name of the parameter |
|
2015 * @return a <code>SQLXML</code> object that maps an <code>SQL XML</code> value |
|
2016 * @throws SQLException if parameterName does not correspond to a named |
|
2017 * parameter; if a database access error occurs or |
|
2018 * this method is called on a closed <code>CallableStatement</code> |
|
2019 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support |
|
2020 * this method |
|
2021 * @since 1.6 |
|
2022 */ |
|
2023 SQLXML getSQLXML(String parameterName) throws SQLException; |
|
2024 |
|
2025 /** |
|
2026 * Retrieves the value of the designated <code>NCHAR</code>, |
|
2027 * <code>NVARCHAR</code> |
|
2028 * or <code>LONGNVARCHAR</code> parameter as |
|
2029 * a <code>String</code> in the Java programming language. |
|
2030 * <p> |
|
2031 * For the fixed-length type JDBC <code>NCHAR</code>, |
|
2032 * the <code>String</code> object |
|
2033 * returned has exactly the same value the SQL |
|
2034 * <code>NCHAR</code> value had in the |
|
2035 * database, including any padding added by the database. |
|
2036 * |
|
2037 * @param parameterIndex index of the first parameter is 1, the second is 2, ... |
|
2038 * @return a <code>String</code> object that maps an |
|
2039 * <code>NCHAR</code>, <code>NVARCHAR</code> or <code>LONGNVARCHAR</code> value |
|
2040 * @exception SQLException if the parameterIndex is not valid; |
|
2041 * if a database access error occurs or |
|
2042 * this method is called on a closed <code>CallableStatement</code> |
|
2043 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support |
|
2044 * this method |
|
2045 * @since 1.6 |
|
2046 * @see #setNString |
|
2047 */ |
|
2048 String getNString(int parameterIndex) throws SQLException; |
|
2049 |
|
2050 |
|
2051 /** |
|
2052 * Retrieves the value of the designated <code>NCHAR</code>, |
|
2053 * <code>NVARCHAR</code> |
|
2054 * or <code>LONGNVARCHAR</code> parameter as |
|
2055 * a <code>String</code> in the Java programming language. |
|
2056 * <p> |
|
2057 * For the fixed-length type JDBC <code>NCHAR</code>, |
|
2058 * the <code>String</code> object |
|
2059 * returned has exactly the same value the SQL |
|
2060 * <code>NCHAR</code> value had in the |
|
2061 * database, including any padding added by the database. |
|
2062 * |
|
2063 * @param parameterName the name of the parameter |
|
2064 * @return a <code>String</code> object that maps an |
|
2065 * <code>NCHAR</code>, <code>NVARCHAR</code> or <code>LONGNVARCHAR</code> value |
|
2066 * @exception SQLException if parameterName does not correspond to a named |
|
2067 * parameter; |
|
2068 * if a database access error occurs or |
|
2069 * this method is called on a closed <code>CallableStatement</code> |
|
2070 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support |
|
2071 * this method |
|
2072 * @since 1.6 |
|
2073 * @see #setNString |
|
2074 */ |
|
2075 String getNString(String parameterName) throws SQLException; |
|
2076 |
|
2077 /** |
|
2078 * Retrieves the value of the designated parameter as a |
|
2079 * <code>java.io.Reader</code> object in the Java programming language. |
|
2080 * It is intended for use when |
|
2081 * accessing <code>NCHAR</code>,<code>NVARCHAR</code> |
|
2082 * and <code>LONGNVARCHAR</code> parameters. |
|
2083 * |
|
2084 * @return a <code>java.io.Reader</code> object that contains the parameter |
|
2085 * value; if the value is SQL <code>NULL</code>, the value returned is |
|
2086 * <code>null</code> in the Java programming language. |
|
2087 * @param parameterIndex the first parameter is 1, the second is 2, ... |
|
2088 * @exception SQLException if the parameterIndex is not valid; |
|
2089 * if a database access error occurs or |
|
2090 * this method is called on a closed <code>CallableStatement</code> |
|
2091 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support |
|
2092 * this method |
|
2093 * @since 1.6 |
|
2094 */ |
|
2095 java.io.Reader getNCharacterStream(int parameterIndex) throws SQLException; |
|
2096 |
|
2097 /** |
|
2098 * Retrieves the value of the designated parameter as a |
|
2099 * <code>java.io.Reader</code> object in the Java programming language. |
|
2100 * It is intended for use when |
|
2101 * accessing <code>NCHAR</code>,<code>NVARCHAR</code> |
|
2102 * and <code>LONGNVARCHAR</code> parameters. |
|
2103 * |
|
2104 * @param parameterName the name of the parameter |
|
2105 * @return a <code>java.io.Reader</code> object that contains the parameter |
|
2106 * value; if the value is SQL <code>NULL</code>, the value returned is |
|
2107 * <code>null</code> in the Java programming language |
|
2108 * @exception SQLException if parameterName does not correspond to a named |
|
2109 * parameter; if a database access error occurs or |
|
2110 * this method is called on a closed <code>CallableStatement</code> |
|
2111 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support |
|
2112 * this method |
|
2113 * @since 1.6 |
|
2114 */ |
|
2115 java.io.Reader getNCharacterStream(String parameterName) throws SQLException; |
|
2116 |
|
2117 /** |
|
2118 * Retrieves the value of the designated parameter as a |
|
2119 * <code>java.io.Reader</code> object in the Java programming language. |
|
2120 * |
|
2121 * @return a <code>java.io.Reader</code> object that contains the parameter |
|
2122 * value; if the value is SQL <code>NULL</code>, the value returned is |
|
2123 * <code>null</code> in the Java programming language. |
|
2124 * @param parameterIndex the first parameter is 1, the second is 2, ... |
|
2125 * @exception SQLException if the parameterIndex is not valid; if a database access error occurs or |
|
2126 * this method is called on a closed <code>CallableStatement</code> |
|
2127 * @since 1.6 |
|
2128 */ |
|
2129 java.io.Reader getCharacterStream(int parameterIndex) throws SQLException; |
|
2130 |
|
2131 /** |
|
2132 * Retrieves the value of the designated parameter as a |
|
2133 * <code>java.io.Reader</code> object in the Java programming language. |
|
2134 * |
|
2135 * @param parameterName the name of the parameter |
|
2136 * @return a <code>java.io.Reader</code> object that contains the parameter |
|
2137 * value; if the value is SQL <code>NULL</code>, the value returned is |
|
2138 * <code>null</code> in the Java programming language |
|
2139 * @exception SQLException if parameterName does not correspond to a named |
|
2140 * parameter; if a database access error occurs or |
|
2141 * this method is called on a closed <code>CallableStatement</code> |
|
2142 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support |
|
2143 * this method |
|
2144 * @since 1.6 |
|
2145 */ |
|
2146 java.io.Reader getCharacterStream(String parameterName) throws SQLException; |
|
2147 |
|
2148 /** |
|
2149 * Sets the designated parameter to the given <code>java.sql.Blob</code> object. |
|
2150 * The driver converts this to an SQL <code>BLOB</code> value when it |
|
2151 * sends it to the database. |
|
2152 * |
|
2153 * @param parameterName the name of the parameter |
|
2154 * @param x a <code>Blob</code> object that maps an SQL <code>BLOB</code> value |
|
2155 * @exception SQLException if parameterName does not correspond to a named |
|
2156 * parameter; if a database access error occurs or |
|
2157 * this method is called on a closed <code>CallableStatement</code> |
|
2158 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support |
|
2159 * this method |
|
2160 * @since 1.6 |
|
2161 */ |
|
2162 void setBlob (String parameterName, Blob x) throws SQLException; |
|
2163 |
|
2164 /** |
|
2165 * Sets the designated parameter to the given <code>java.sql.Clob</code> object. |
|
2166 * The driver converts this to an SQL <code>CLOB</code> value when it |
|
2167 * sends it to the database. |
|
2168 * |
|
2169 * @param parameterName the name of the parameter |
|
2170 * @param x a <code>Clob</code> object that maps an SQL <code>CLOB</code> value |
|
2171 * @exception SQLException if parameterName does not correspond to a named |
|
2172 * parameter; if a database access error occurs or |
|
2173 * this method is called on a closed <code>CallableStatement</code> |
|
2174 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support |
|
2175 * this method |
|
2176 * @since 1.6 |
|
2177 */ |
|
2178 void setClob (String parameterName, Clob x) throws SQLException; |
|
2179 /** |
|
2180 * Sets the designated parameter to the given input stream, which will have |
|
2181 * the specified number of bytes. |
|
2182 * When a very large ASCII value is input to a <code>LONGVARCHAR</code> |
|
2183 * parameter, it may be more practical to send it via a |
|
2184 * <code>java.io.InputStream</code>. Data will be read from the stream |
|
2185 * as needed until end-of-file is reached. The JDBC driver will |
|
2186 * do any necessary conversion from ASCII to the database char format. |
|
2187 * |
|
2188 * <P><B>Note:</B> This stream object can either be a standard |
|
2189 * Java stream object or your own subclass that implements the |
|
2190 * standard interface. |
|
2191 * |
|
2192 * @param parameterName the name of the parameter |
|
2193 * @param x the Java input stream that contains the ASCII parameter value |
|
2194 * @param length the number of bytes in the stream |
|
2195 * @exception SQLException if parameterName does not correspond to a named |
|
2196 * parameter; if a database access error occurs or |
|
2197 * this method is called on a closed <code>CallableStatement</code> |
|
2198 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support |
|
2199 * this method |
|
2200 * @since 1.6 |
|
2201 */ |
|
2202 void setAsciiStream(String parameterName, java.io.InputStream x, long length) |
|
2203 throws SQLException; |
|
2204 |
|
2205 /** |
|
2206 * Sets the designated parameter to the given input stream, which will have |
|
2207 * the specified number of bytes. |
|
2208 * When a very large binary value is input to a <code>LONGVARBINARY</code> |
|
2209 * parameter, it may be more practical to send it via a |
|
2210 * <code>java.io.InputStream</code> object. The data will be read from the stream |
|
2211 * as needed until end-of-file is reached. |
|
2212 * |
|
2213 * <P><B>Note:</B> This stream object can either be a standard |
|
2214 * Java stream object or your own subclass that implements the |
|
2215 * standard interface. |
|
2216 * |
|
2217 * @param parameterName the name of the parameter |
|
2218 * @param x the java input stream which contains the binary parameter value |
|
2219 * @param length the number of bytes in the stream |
|
2220 * @exception SQLException if parameterName does not correspond to a named |
|
2221 * parameter; if a database access error occurs or |
|
2222 * this method is called on a closed <code>CallableStatement</code> |
|
2223 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support |
|
2224 * this method |
|
2225 * @since 1.6 |
|
2226 */ |
|
2227 void setBinaryStream(String parameterName, java.io.InputStream x, |
|
2228 long length) throws SQLException; |
|
2229 /** |
|
2230 * Sets the designated parameter to the given <code>Reader</code> |
|
2231 * object, which is the given number of characters long. |
|
2232 * When a very large UNICODE value is input to a <code>LONGVARCHAR</code> |
|
2233 * parameter, it may be more practical to send it via a |
|
2234 * <code>java.io.Reader</code> object. The data will be read from the stream |
|
2235 * as needed until end-of-file is reached. The JDBC driver will |
|
2236 * do any necessary conversion from UNICODE to the database char format. |
|
2237 * |
|
2238 * <P><B>Note:</B> This stream object can either be a standard |
|
2239 * Java stream object or your own subclass that implements the |
|
2240 * standard interface. |
|
2241 * |
|
2242 * @param parameterName the name of the parameter |
|
2243 * @param reader the <code>java.io.Reader</code> object that |
|
2244 * contains the UNICODE data used as the designated parameter |
|
2245 * @param length the number of characters in the stream |
|
2246 * @exception SQLException if parameterName does not correspond to a named |
|
2247 * parameter; if a database access error occurs or |
|
2248 * this method is called on a closed <code>CallableStatement</code> |
|
2249 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support |
|
2250 * this method |
|
2251 * @since 1.6 |
|
2252 */ |
|
2253 void setCharacterStream(String parameterName, |
|
2254 java.io.Reader reader, |
|
2255 long length) throws SQLException; |
|
2256 //-- |
|
2257 /** |
|
2258 * Sets the designated parameter to the given input stream. |
|
2259 * When a very large ASCII value is input to a <code>LONGVARCHAR</code> |
|
2260 * parameter, it may be more practical to send it via a |
|
2261 * <code>java.io.InputStream</code>. Data will be read from the stream |
|
2262 * as needed until end-of-file is reached. The JDBC driver will |
|
2263 * do any necessary conversion from ASCII to the database char format. |
|
2264 * |
|
2265 * <P><B>Note:</B> This stream object can either be a standard |
|
2266 * Java stream object or your own subclass that implements the |
|
2267 * standard interface. |
|
2268 * <P><B>Note:</B> Consult your JDBC driver documentation to determine if |
|
2269 * it might be more efficient to use a version of |
|
2270 * <code>setAsciiStream</code> which takes a length parameter. |
|
2271 * |
|
2272 * @param parameterName the name of the parameter |
|
2273 * @param x the Java input stream that contains the ASCII parameter value |
|
2274 * @exception SQLException if parameterName does not correspond to a named |
|
2275 * parameter; if a database access error occurs or |
|
2276 * this method is called on a closed <code>CallableStatement</code> |
|
2277 * @throws SQLFeatureNotSupportedException if the JDBC driver does not support this method |
|
2278 * @since 1.6 |
|
2279 */ |
|
2280 void setAsciiStream(String parameterName, java.io.InputStream x) |
|
2281 throws SQLException; |
|
2282 /** |
|
2283 * Sets the designated parameter to the given input stream. |
|
2284 * When a very large binary value is input to a <code>LONGVARBINARY</code> |
|
2285 * parameter, it may be more practical to send it via a |
|
2286 * <code>java.io.InputStream</code> object. The data will be read from the |
|
2287 * stream as needed until end-of-file is reached. |
|
2288 * |
|
2289 * <P><B>Note:</B> This stream object can either be a standard |
|
2290 * Java stream object or your own subclass that implements the |
|
2291 * standard interface. |
|
2292 * <P><B>Note:</B> Consult your JDBC driver documentation to determine if |
|
2293 * it might be more efficient to use a version of |
|
2294 * <code>setBinaryStream</code> which takes a length parameter. |
|
2295 * |
|
2296 * @param parameterName the name of the parameter |
|
2297 * @param x the java input stream which contains the binary parameter value |
|
2298 * @exception SQLException if parameterName does not correspond to a named |
|
2299 * parameter; if a database access error occurs or |
|
2300 * this method is called on a closed <code>CallableStatement</code> |
|
2301 * @throws SQLFeatureNotSupportedException if the JDBC driver does not support this method |
|
2302 * @since 1.6 |
|
2303 */ |
|
2304 void setBinaryStream(String parameterName, java.io.InputStream x) |
|
2305 throws SQLException; |
|
2306 /** |
|
2307 * Sets the designated parameter to the given <code>Reader</code> |
|
2308 * object. |
|
2309 * When a very large UNICODE value is input to a <code>LONGVARCHAR</code> |
|
2310 * parameter, it may be more practical to send it via a |
|
2311 * <code>java.io.Reader</code> object. The data will be read from the stream |
|
2312 * as needed until end-of-file is reached. The JDBC driver will |
|
2313 * do any necessary conversion from UNICODE to the database char format. |
|
2314 * |
|
2315 * <P><B>Note:</B> This stream object can either be a standard |
|
2316 * Java stream object or your own subclass that implements the |
|
2317 * standard interface. |
|
2318 * <P><B>Note:</B> Consult your JDBC driver documentation to determine if |
|
2319 * it might be more efficient to use a version of |
|
2320 * <code>setCharacterStream</code> which takes a length parameter. |
|
2321 * |
|
2322 * @param parameterName the name of the parameter |
|
2323 * @param reader the <code>java.io.Reader</code> object that contains the |
|
2324 * Unicode data |
|
2325 * @exception SQLException if parameterName does not correspond to a named |
|
2326 * parameter; if a database access error occurs or |
|
2327 * this method is called on a closed <code>CallableStatement</code> |
|
2328 * @throws SQLFeatureNotSupportedException if the JDBC driver does not support this method |
|
2329 * @since 1.6 |
|
2330 */ |
|
2331 void setCharacterStream(String parameterName, |
|
2332 java.io.Reader reader) throws SQLException; |
|
2333 /** |
|
2334 * Sets the designated parameter to a <code>Reader</code> object. The |
|
2335 * <code>Reader</code> reads the data till end-of-file is reached. The |
|
2336 * driver does the necessary conversion from Java character format to |
|
2337 * the national character set in the database. |
|
2338 |
|
2339 * <P><B>Note:</B> This stream object can either be a standard |
|
2340 * Java stream object or your own subclass that implements the |
|
2341 * standard interface. |
|
2342 * <P><B>Note:</B> Consult your JDBC driver documentation to determine if |
|
2343 * it might be more efficient to use a version of |
|
2344 * <code>setNCharacterStream</code> which takes a length parameter. |
|
2345 * |
|
2346 * @param parameterName the name of the parameter |
|
2347 * @param value the parameter value |
|
2348 * @throws SQLException if parameterName does not correspond to a named |
|
2349 * parameter; if the driver does not support national |
|
2350 * character sets; if the driver can detect that a data conversion |
|
2351 * error could occur; if a database access error occurs; or |
|
2352 * this method is called on a closed <code>CallableStatement</code> |
|
2353 * @throws SQLFeatureNotSupportedException if the JDBC driver does not support this method |
|
2354 * @since 1.6 |
|
2355 */ |
|
2356 void setNCharacterStream(String parameterName, Reader value) throws SQLException; |
|
2357 |
|
2358 /** |
|
2359 * Sets the designated parameter to a <code>Reader</code> object. |
|
2360 * This method differs from the <code>setCharacterStream (int, Reader)</code> method |
|
2361 * because it informs the driver that the parameter value should be sent to |
|
2362 * the server as a <code>CLOB</code>. When the <code>setCharacterStream</code> method is used, the |
|
2363 * driver may have to do extra work to determine whether the parameter |
|
2364 * data should be send to the server as a <code>LONGVARCHAR</code> or a <code>CLOB</code> |
|
2365 * |
|
2366 * <P><B>Note:</B> Consult your JDBC driver documentation to determine if |
|
2367 * it might be more efficient to use a version of |
|
2368 * <code>setClob</code> which takes a length parameter. |
|
2369 * |
|
2370 * @param parameterName the name of the parameter |
|
2371 * @param reader An object that contains the data to set the parameter value to. |
|
2372 * @throws SQLException if parameterName does not correspond to a named |
|
2373 * parameter; if a database access error occurs or this method is called on |
|
2374 * a closed <code>CallableStatement</code> |
|
2375 * |
|
2376 * @throws SQLFeatureNotSupportedException if the JDBC driver does not support this method |
|
2377 * @since 1.6 |
|
2378 */ |
|
2379 void setClob(String parameterName, Reader reader) |
|
2380 throws SQLException; |
|
2381 |
|
2382 /** |
|
2383 * Sets the designated parameter to an {@code InputStream} object. |
|
2384 * This method differs from the <code>setBinaryStream (int, InputStream)</code> |
|
2385 * method because it informs the driver that the parameter value should be |
|
2386 * sent to the server as a <code>BLOB</code>. When the <code>setBinaryStream</code> method is used, |
|
2387 * the driver may have to do extra work to determine whether the parameter |
|
2388 * data should be send to the server as a <code>LONGVARBINARY</code> or a <code>BLOB</code> |
|
2389 * |
|
2390 * <P><B>Note:</B> Consult your JDBC driver documentation to determine if |
|
2391 * it might be more efficient to use a version of |
|
2392 * <code>setBlob</code> which takes a length parameter. |
|
2393 * |
|
2394 * @param parameterName the name of the parameter |
|
2395 * @param inputStream An object that contains the data to set the parameter |
|
2396 * value to. |
|
2397 * @throws SQLException if parameterName does not correspond to a named |
|
2398 * parameter; if a database access error occurs or |
|
2399 * this method is called on a closed <code>CallableStatement</code> |
|
2400 * @throws SQLFeatureNotSupportedException if the JDBC driver does not support this method |
|
2401 * |
|
2402 * @since 1.6 |
|
2403 */ |
|
2404 void setBlob(String parameterName, InputStream inputStream) |
|
2405 throws SQLException; |
|
2406 /** |
|
2407 * Sets the designated parameter to a <code>Reader</code> object. |
|
2408 * This method differs from the <code>setCharacterStream (int, Reader)</code> method |
|
2409 * because it informs the driver that the parameter value should be sent to |
|
2410 * the server as a <code>NCLOB</code>. When the <code>setCharacterStream</code> method is used, the |
|
2411 * driver may have to do extra work to determine whether the parameter |
|
2412 * data should be send to the server as a <code>LONGNVARCHAR</code> or a <code>NCLOB</code> |
|
2413 * <P><B>Note:</B> Consult your JDBC driver documentation to determine if |
|
2414 * it might be more efficient to use a version of |
|
2415 * <code>setNClob</code> which takes a length parameter. |
|
2416 * |
|
2417 * @param parameterName the name of the parameter |
|
2418 * @param reader An object that contains the data to set the parameter value to. |
|
2419 * @throws SQLException if parameterName does not correspond to a named |
|
2420 * parameter; if the driver does not support national character sets; |
|
2421 * if the driver can detect that a data conversion |
|
2422 * error could occur; if a database access error occurs or |
|
2423 * this method is called on a closed <code>CallableStatement</code> |
|
2424 * @throws SQLFeatureNotSupportedException if the JDBC driver does not support this method |
|
2425 * |
|
2426 * @since 1.6 |
|
2427 */ |
|
2428 void setNClob(String parameterName, Reader reader) |
|
2429 throws SQLException; |
|
2430 |
|
2431 //------------------------- JDBC 4.1 ----------------------------------- |
|
2432 |
|
2433 |
|
2434 /** |
|
2435 * Returns an object representing the value of OUT parameter |
|
2436 * {@code parameterIndex} and will convert from the |
|
2437 * SQL type of the parameter to the requested Java data type, if the |
|
2438 * conversion is supported. If the conversion is not |
|
2439 * supported or null is specified for the type, a |
|
2440 * <code>SQLException</code> is thrown. |
|
2441 *<p> |
|
2442 * At a minimum, an implementation must support the conversions defined in |
|
2443 * Appendix B, Table B-3 and conversion of appropriate user defined SQL |
|
2444 * types to a Java type which implements {@code SQLData}, or {@code Struct}. |
|
2445 * Additional conversions may be supported and are vendor defined. |
|
2446 * |
|
2447 * @param parameterIndex the first parameter is 1, the second is 2, and so on |
|
2448 * @param type Class representing the Java data type to convert the |
|
2449 * designated parameter to. |
|
2450 * @param <T> the type of the class modeled by this Class object |
|
2451 * @return an instance of {@code type} holding the OUT parameter value |
|
2452 * @throws SQLException if conversion is not supported, type is null or |
|
2453 * another error occurs. The getCause() method of the |
|
2454 * exception may provide a more detailed exception, for example, if |
|
2455 * a conversion error occurs |
|
2456 * @throws SQLFeatureNotSupportedException if the JDBC driver does not support |
|
2457 * this method |
|
2458 * @since 1.7 |
|
2459 */ |
|
2460 public <T> T getObject(int parameterIndex, Class<T> type) throws SQLException; |
|
2461 |
|
2462 |
|
2463 /** |
|
2464 * Returns an object representing the value of OUT parameter |
|
2465 * {@code parameterName} and will convert from the |
|
2466 * SQL type of the parameter to the requested Java data type, if the |
|
2467 * conversion is supported. If the conversion is not |
|
2468 * supported or null is specified for the type, a |
|
2469 * <code>SQLException</code> is thrown. |
|
2470 *<p> |
|
2471 * At a minimum, an implementation must support the conversions defined in |
|
2472 * Appendix B, Table B-3 and conversion of appropriate user defined SQL |
|
2473 * types to a Java type which implements {@code SQLData}, or {@code Struct}. |
|
2474 * Additional conversions may be supported and are vendor defined. |
|
2475 * |
|
2476 * @param parameterName the name of the parameter |
|
2477 * @param type Class representing the Java data type to convert |
|
2478 * the designated parameter to. |
|
2479 * @param <T> the type of the class modeled by this Class object |
|
2480 * @return an instance of {@code type} holding the OUT parameter |
|
2481 * value |
|
2482 * @throws SQLException if conversion is not supported, type is null or |
|
2483 * another error occurs. The getCause() method of the |
|
2484 * exception may provide a more detailed exception, for example, if |
|
2485 * a conversion error occurs |
|
2486 * @throws SQLFeatureNotSupportedException if the JDBC driver does not support |
|
2487 * this method |
|
2488 * @since 1.7 |
|
2489 */ |
|
2490 public <T> T getObject(String parameterName, Class<T> type) throws SQLException; |
|
2491 |
|
2492 //------------------------- JDBC 4.2 ----------------------------------- |
|
2493 |
|
2494 /** |
|
2495 * Sets the value of the designated parameter with the given object. |
|
2496 * |
|
2497 * If the second argument is an {@code InputStream} then the stream |
|
2498 * must contain the number of bytes specified by scaleOrLength. |
|
2499 * If the second argument is a {@code Reader} then the reader must |
|
2500 * contain the number of characters specified |
|
2501 * by scaleOrLength. If these conditions are not true the driver |
|
2502 * will generate a |
|
2503 * {@code SQLException} when the prepared statement is executed. |
|
2504 * |
|
2505 * <p>The given Java object will be converted to the given targetSqlType |
|
2506 * before being sent to the database. |
|
2507 * |
|
2508 * If the object has a custom mapping (is of a class implementing the |
|
2509 * interface {@code SQLData}), |
|
2510 * the JDBC driver should call the method {@code SQLData.writeSQL} to |
|
2511 * write it to the SQL data stream. |
|
2512 * If, on the other hand, the object is of a class implementing |
|
2513 * {@code Ref}, {@code Blob}, {@code Clob}, {@code NClob}, |
|
2514 * {@code Struct}, {@code java.net.URL}, |
|
2515 * or {@code Array}, the driver should pass it to the database as a |
|
2516 * value of the corresponding SQL type. |
|
2517 * |
|
2518 * <p>Note that this method may be used to pass database-specific |
|
2519 * abstract data types. |
|
2520 *<P> |
|
2521 * The default implementation will throw {@code SQLFeatureNotSupportedException} |
|
2522 * |
|
2523 * @param parameterName the name of the parameter |
|
2524 * @param x the object containing the input parameter value |
|
2525 * @param targetSqlType the SQL type to be |
|
2526 * sent to the database. The scale argument may further qualify this type. |
|
2527 * @param scaleOrLength for {@code java.sql.JDBCType.DECIMAL} |
|
2528 * or {@code java.sql.JDBCType.NUMERIC types}, |
|
2529 * this is the number of digits after the decimal point. For |
|
2530 * Java Object types {@code InputStream} and {@code Reader}, |
|
2531 * this is the length |
|
2532 * of the data in the stream or reader. For all other types, |
|
2533 * this value will be ignored. |
|
2534 * @exception SQLException if parameterName does not correspond to a named |
|
2535 * parameter; if a database access error occurs |
|
2536 * or this method is called on a closed {@code CallableStatement} or |
|
2537 * if the Java Object specified by x is an InputStream |
|
2538 * or Reader object and the value of the scale parameter is less |
|
2539 * than zero |
|
2540 * @exception SQLFeatureNotSupportedException if |
|
2541 * the JDBC driver does not support the specified targetSqlType |
|
2542 * @see JDBCType |
|
2543 * @see SQLType |
|
2544 * |
|
2545 * @since 1.8 |
|
2546 */ |
|
2547 default void setObject(String parameterName, Object x, SQLType targetSqlType, |
|
2548 int scaleOrLength) throws SQLException { |
|
2549 throw new SQLFeatureNotSupportedException("setObject not implemented"); |
|
2550 } |
|
2551 /** |
|
2552 * Sets the value of the designated parameter with the given object. |
|
2553 * |
|
2554 * This method is similar to {@link #setObject(String parameterName, |
|
2555 * Object x, SQLType targetSqlType, int scaleOrLength)}, |
|
2556 * except that it assumes a scale of zero. |
|
2557 *<P> |
|
2558 * The default implementation will throw {@code SQLFeatureNotSupportedException} |
|
2559 * |
|
2560 * @param parameterName the name of the parameter |
|
2561 * @param x the object containing the input parameter value |
|
2562 * @param targetSqlType the SQL type to be sent to the database |
|
2563 * @exception SQLException if parameterName does not correspond to a named |
|
2564 * parameter; if a database access error occurs |
|
2565 * or this method is called on a closed {@code CallableStatement} |
|
2566 * @exception SQLFeatureNotSupportedException if |
|
2567 * the JDBC driver does not support the specified targetSqlType |
|
2568 * @see JDBCType |
|
2569 * @see SQLType |
|
2570 * @since 1.8 |
|
2571 */ |
|
2572 default void setObject(String parameterName, Object x, SQLType targetSqlType) |
|
2573 throws SQLException { |
|
2574 throw new SQLFeatureNotSupportedException("setObject not implemented"); |
|
2575 } |
|
2576 |
|
2577 /** |
|
2578 * Registers the OUT parameter in ordinal position |
|
2579 * {@code parameterIndex} to the JDBC type |
|
2580 * {@code sqlType}. All OUT parameters must be registered |
|
2581 * before a stored procedure is executed. |
|
2582 * <p> |
|
2583 * The JDBC type specified by {@code sqlType} for an OUT |
|
2584 * parameter determines the Java type that must be used |
|
2585 * in the {@code get} method to read the value of that parameter. |
|
2586 * <p> |
|
2587 * If the JDBC type expected to be returned to this output parameter |
|
2588 * is specific to this particular database, {@code sqlType} |
|
2589 * may be {@code JDBCType.OTHER} or a {@code SQLType} that is supported by |
|
2590 * the JDBC driver. The method |
|
2591 * {@link #getObject} retrieves the value. |
|
2592 *<P> |
|
2593 * The default implementation will throw {@code SQLFeatureNotSupportedException} |
|
2594 * |
|
2595 * @param parameterIndex the first parameter is 1, the second is 2, |
|
2596 * and so on |
|
2597 * @param sqlType the JDBC type code defined by {@code SQLType} to use to |
|
2598 * register the OUT Parameter. |
|
2599 * If the parameter is of JDBC type {@code JDBCType.NUMERIC} |
|
2600 * or {@code JDBCType.DECIMAL}, the version of |
|
2601 * {@code registerOutParameter} that accepts a scale value |
|
2602 * should be used. |
|
2603 * |
|
2604 * @exception SQLException if the parameterIndex is not valid; |
|
2605 * if a database access error occurs or |
|
2606 * this method is called on a closed {@code CallableStatement} |
|
2607 * @exception SQLFeatureNotSupportedException if |
|
2608 * the JDBC driver does not support the specified sqlType |
|
2609 * @see JDBCType |
|
2610 * @see SQLType |
|
2611 * @since 1.8 |
|
2612 */ |
|
2613 default void registerOutParameter(int parameterIndex, SQLType sqlType) |
|
2614 throws SQLException { |
|
2615 throw new SQLFeatureNotSupportedException("registerOutParameter not implemented"); |
|
2616 } |
|
2617 |
|
2618 /** |
|
2619 * Registers the parameter in ordinal position |
|
2620 * {@code parameterIndex} to be of JDBC type |
|
2621 * {@code sqlType}. All OUT parameters must be registered |
|
2622 * before a stored procedure is executed. |
|
2623 * <p> |
|
2624 * The JDBC type specified by {@code sqlType} for an OUT |
|
2625 * parameter determines the Java type that must be used |
|
2626 * in the {@code get} method to read the value of that parameter. |
|
2627 * <p> |
|
2628 * This version of {@code registerOutParameter} should be |
|
2629 * used when the parameter is of JDBC type {@code JDBCType.NUMERIC} |
|
2630 * or {@code JDBCType.DECIMAL}. |
|
2631 *<P> |
|
2632 * The default implementation will throw {@code SQLFeatureNotSupportedException} |
|
2633 * |
|
2634 * @param parameterIndex the first parameter is 1, the second is 2, |
|
2635 * and so on |
|
2636 * @param sqlType the JDBC type code defined by {@code SQLType} to use to |
|
2637 * register the OUT Parameter. |
|
2638 * @param scale the desired number of digits to the right of the |
|
2639 * decimal point. It must be greater than or equal to zero. |
|
2640 * @exception SQLException if the parameterIndex is not valid; |
|
2641 * if a database access error occurs or |
|
2642 * this method is called on a closed {@code CallableStatement} |
|
2643 * @exception SQLFeatureNotSupportedException if |
|
2644 * the JDBC driver does not support the specified sqlType |
|
2645 * @see JDBCType |
|
2646 * @see SQLType |
|
2647 * @since 1.8 |
|
2648 */ |
|
2649 default void registerOutParameter(int parameterIndex, SQLType sqlType, |
|
2650 int scale) throws SQLException { |
|
2651 throw new SQLFeatureNotSupportedException("registerOutParameter not implemented"); |
|
2652 } |
|
2653 /** |
|
2654 * Registers the designated output parameter. |
|
2655 * This version of |
|
2656 * the method {@code registerOutParameter} |
|
2657 * should be used for a user-defined or {@code REF} output parameter. |
|
2658 * Examples |
|
2659 * of user-defined types include: {@code STRUCT}, {@code DISTINCT}, |
|
2660 * {@code JAVA_OBJECT}, and named array types. |
|
2661 *<p> |
|
2662 * All OUT parameters must be registered |
|
2663 * before a stored procedure is executed. |
|
2664 * <p> For a user-defined parameter, the fully-qualified SQL |
|
2665 * type name of the parameter should also be given, while a {@code REF} |
|
2666 * parameter requires that the fully-qualified type name of the |
|
2667 * referenced type be given. A JDBC driver that does not need the |
|
2668 * type code and type name information may ignore it. To be portable, |
|
2669 * however, applications should always provide these values for |
|
2670 * user-defined and {@code REF} parameters. |
|
2671 * |
|
2672 * Although it is intended for user-defined and {@code REF} parameters, |
|
2673 * this method may be used to register a parameter of any JDBC type. |
|
2674 * If the parameter does not have a user-defined or {@code REF} type, the |
|
2675 * <i>typeName</i> parameter is ignored. |
|
2676 * |
|
2677 * <P><B>Note:</B> When reading the value of an out parameter, you |
|
2678 * must use the getter method whose Java type corresponds to the |
|
2679 * parameter's registered SQL type. |
|
2680 *<P> |
|
2681 * The default implementation will throw {@code SQLFeatureNotSupportedException} |
|
2682 * |
|
2683 * @param parameterIndex the first parameter is 1, the second is 2,... |
|
2684 * @param sqlType the JDBC type code defined by {@code SQLType} to use to |
|
2685 * register the OUT Parameter. |
|
2686 * @param typeName the fully-qualified name of an SQL structured type |
|
2687 * @exception SQLException if the parameterIndex is not valid; |
|
2688 * if a database access error occurs or |
|
2689 * this method is called on a closed {@code CallableStatement} |
|
2690 * @exception SQLFeatureNotSupportedException if |
|
2691 * the JDBC driver does not support the specified sqlType |
|
2692 * @see JDBCType |
|
2693 * @see SQLType |
|
2694 * @since 1.8 |
|
2695 */ |
|
2696 default void registerOutParameter (int parameterIndex, SQLType sqlType, |
|
2697 String typeName) throws SQLException { |
|
2698 throw new SQLFeatureNotSupportedException("registerOutParameter not implemented"); |
|
2699 } |
|
2700 |
|
2701 /** |
|
2702 * Registers the OUT parameter named |
|
2703 * <code>parameterName</code> to the JDBC type |
|
2704 * {@code sqlType}. All OUT parameters must be registered |
|
2705 * before a stored procedure is executed. |
|
2706 * <p> |
|
2707 * The JDBC type specified by {@code sqlType} for an OUT |
|
2708 * parameter determines the Java type that must be used |
|
2709 * in the {@code get} method to read the value of that parameter. |
|
2710 * <p> |
|
2711 * If the JDBC type expected to be returned to this output parameter |
|
2712 * is specific to this particular database, {@code sqlType} |
|
2713 * should be {@code JDBCType.OTHER} or a {@code SQLType} that is supported |
|
2714 * by the JDBC driver.. The method |
|
2715 * {@link #getObject} retrieves the value. |
|
2716 *<P> |
|
2717 * The default implementation will throw {@code SQLFeatureNotSupportedException} |
|
2718 * |
|
2719 * @param parameterName the name of the parameter |
|
2720 * @param sqlType the JDBC type code defined by {@code SQLType} to use to |
|
2721 * register the OUT Parameter. |
|
2722 * If the parameter is of JDBC type {@code JDBCType.NUMERIC} |
|
2723 * or {@code JDBCType.DECIMAL}, the version of |
|
2724 * {@code registerOutParameter} that accepts a scale value |
|
2725 * should be used. |
|
2726 * @exception SQLException if parameterName does not correspond to a named |
|
2727 * parameter; if a database access error occurs or |
|
2728 * this method is called on a closed {@code CallableStatement} |
|
2729 * @exception SQLFeatureNotSupportedException if |
|
2730 * the JDBC driver does not support the specified sqlType |
|
2731 * or if the JDBC driver does not support |
|
2732 * this method |
|
2733 * @since 1.8 |
|
2734 * @see JDBCType |
|
2735 * @see SQLType |
|
2736 */ |
|
2737 default void registerOutParameter(String parameterName, SQLType sqlType) |
|
2738 throws SQLException { |
|
2739 throw new SQLFeatureNotSupportedException("registerOutParameter not implemented"); |
|
2740 } |
|
2741 |
|
2742 /** |
|
2743 * Registers the parameter named |
|
2744 * <code>parameterName</code> to be of JDBC type |
|
2745 * {@code sqlType}. All OUT parameters must be registered |
|
2746 * before a stored procedure is executed. |
|
2747 * <p> |
|
2748 * The JDBC type specified by {@code sqlType} for an OUT |
|
2749 * parameter determines the Java type that must be used |
|
2750 * in the {@code get} method to read the value of that parameter. |
|
2751 * <p> |
|
2752 * This version of {@code registerOutParameter} should be |
|
2753 * used when the parameter is of JDBC type {@code JDBCType.NUMERIC} |
|
2754 * or {@code JDBCType.DECIMAL}. |
|
2755 *<P> |
|
2756 * The default implementation will throw {@code SQLFeatureNotSupportedException} |
|
2757 * |
|
2758 * @param parameterName the name of the parameter |
|
2759 * @param sqlType the JDBC type code defined by {@code SQLType} to use to |
|
2760 * register the OUT Parameter. |
|
2761 * @param scale the desired number of digits to the right of the |
|
2762 * decimal point. It must be greater than or equal to zero. |
|
2763 * @exception SQLException if parameterName does not correspond to a named |
|
2764 * parameter; if a database access error occurs or |
|
2765 * this method is called on a closed {@code CallableStatement} |
|
2766 * @exception SQLFeatureNotSupportedException if |
|
2767 * the JDBC driver does not support the specified sqlType |
|
2768 * or if the JDBC driver does not support |
|
2769 * this method |
|
2770 * @since 1.8 |
|
2771 * @see JDBCType |
|
2772 * @see SQLType |
|
2773 */ |
|
2774 default void registerOutParameter(String parameterName, SQLType sqlType, |
|
2775 int scale) throws SQLException { |
|
2776 throw new SQLFeatureNotSupportedException("registerOutParameter not implemented"); |
|
2777 } |
|
2778 |
|
2779 /** |
|
2780 * Registers the designated output parameter. This version of |
|
2781 * the method {@code registerOutParameter} |
|
2782 * should be used for a user-named or REF output parameter. Examples |
|
2783 * of user-named types include: STRUCT, DISTINCT, JAVA_OBJECT, and |
|
2784 * named array types. |
|
2785 *<p> |
|
2786 * All OUT parameters must be registered |
|
2787 * before a stored procedure is executed. |
|
2788 * </p> |
|
2789 * For a user-named parameter the fully-qualified SQL |
|
2790 * type name of the parameter should also be given, while a REF |
|
2791 * parameter requires that the fully-qualified type name of the |
|
2792 * referenced type be given. A JDBC driver that does not need the |
|
2793 * type code and type name information may ignore it. To be portable, |
|
2794 * however, applications should always provide these values for |
|
2795 * user-named and REF parameters. |
|
2796 * |
|
2797 * Although it is intended for user-named and REF parameters, |
|
2798 * this method may be used to register a parameter of any JDBC type. |
|
2799 * If the parameter does not have a user-named or REF type, the |
|
2800 * typeName parameter is ignored. |
|
2801 * |
|
2802 * <P><B>Note:</B> When reading the value of an out parameter, you |
|
2803 * must use the {@code getXXX} method whose Java type XXX corresponds to the |
|
2804 * parameter's registered SQL type. |
|
2805 *<P> |
|
2806 * The default implementation will throw {@code SQLFeatureNotSupportedException} |
|
2807 * |
|
2808 * @param parameterName the name of the parameter |
|
2809 * @param sqlType the JDBC type code defined by {@code SQLType} to use to |
|
2810 * register the OUT Parameter. |
|
2811 * @param typeName the fully-qualified name of an SQL structured type |
|
2812 * @exception SQLException if parameterName does not correspond to a named |
|
2813 * parameter; if a database access error occurs or |
|
2814 * this method is called on a closed {@code CallableStatement} |
|
2815 * @exception SQLFeatureNotSupportedException if |
|
2816 * the JDBC driver does not support the specified sqlType |
|
2817 * or if the JDBC driver does not support this method |
|
2818 * @see JDBCType |
|
2819 * @see SQLType |
|
2820 * @since 1.8 |
|
2821 */ |
|
2822 default void registerOutParameter (String parameterName, SQLType sqlType, |
|
2823 String typeName) throws SQLException { |
|
2824 throw new SQLFeatureNotSupportedException("registerOutParameter not implemented"); |
|
2825 } |
|
2826 } |