Module java.sql
Package java.sql

# Interface SQLOutput

All Known Implementing Classes:
  `SQLOutputImpl`

public interface SQLOutput
The output stream for writing the attributes of a user-defined type back to the database. This interface, used only for custom mapping, is used by the driver, and its methods are never directly invoked by a programmer.

When an object of a class implementing the interface `SQLData` is passed as an argument to an SQL statement, the JDBC driver calls the method `SQLData.getSQLType` to determine the kind of SQL datum being passed to the database. The driver then creates an instance of `SQLOutput` and passes it to the method `SQLData.writeSQL`. The method `writeSQL` in turn calls the appropriate `SQLOutput` writer methods `writeBoolean`, `writeCharacterStream`, and so on) to write data from the `SQLData` object to the `SQLOutput` output stream as the representation of an SQL user-defined type.

Since:
  1.2

## Method Summary

Modifier and Type
Method
Description
`void`
`writeArray(Array x)`
Writes an SQL `ARRAY` value to the stream.
`void`
`writeAsciiStream(InputStream x)`
Writes the next attribute to the stream as a stream of ASCII characters.
`void`
`writeBigDecimal(BigDecimal x)`
Writes the next attribute to the stream as a java.math.BigDecimal object.
`void`
`writeBinaryStream(InputStream x)`
Writes the next attribute to the stream as a stream of uninterpreted bytes.
`void`
`writeBlob(Blob x)`
Writes an SQL `BLOB` value to the stream.
`void`
`writeBoolean(boolean x)`
Writes the next attribute to the stream as a Java boolean.
`void`
`writeByte(byte x)`
Writes the next attribute to the stream as a Java byte.
`void`
`writeBytes(byte[] x)`
Writes the next attribute to the stream as an array of bytes.
`void`
`writeCharacterStream(Reader x)`
Writes the next attribute to the stream as a stream of Unicode characters.
`void`
`writeClob(Clob x)`
Writes an SQL `CLOB` value to the stream.
`void`
`writeDate(Date x)`
Writes the next attribute to the stream as a java.sql.Date object.
`void`
`writeDouble(double x)`
Writes the next attribute to the stream as a Java double.
`void`
`writeFloat(float x)`
Writes the next attribute to the stream as a Java float.
`void`
`writeInt(int x)`
Writes the next attribute to the stream as a Java int.
`void`
`writeLong(long x)`
Writes the next attribute to the stream as a Java long.
`void`
`writeNClob(NClob x)`
Writes an SQL `NCLOB` value to the stream.
`void`
`writeNString(String x)`
Writes the next attribute to the stream as a `String` in the Java programming language.
`default void`
`writeObject(Object x, SQLType targetSqlType)`
Writes to the stream the data contained in the given object.
`void`
`writeObject(SQLData x)`
Writes to the stream the data contained in the given `SQLData` object.
`void`
`writeRef(Ref x)`
Writes an SQL `REF` value to the stream.
`void`
`writeRowId(RowId x)`
Writes an SQL `ROWID` value to the stream.
`void`
`writeShort(short x)`
Writes the next attribute to the stream as a Java short.
`void`
`writeSQLXML(SQLXML x)`
Writes an SQL `XML` value to the stream.
`void`
`writeString(String x)`
Writes the next attribute to the stream as a `String` in the Java programming language.
`void`
`writeStruct(Struct x)`
Writes an SQL structured type value to the stream.
`void`
`writeTime(Time x)`
Writes the next attribute to the stream as a java.sql.Time object.
`void`
`writeTimestamp(Timestamp x)`
Writes the next attribute to the stream as a java.sql.Timestamp object.
`void`
`writeURL(URL x)`
Writes a SQL `DATALINK` value to the stream.

## Method Details

### writeString

void writeString(String x) throws SQLException
Writes the next attribute to the stream as a `String` in the Java programming language.

Parameters:
  `x` - the value to pass to the database
Throws:
  `SQLException` - if a database access error occurs
  `SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
Since:
  1.2

### writeBoolean

void writeBoolean(boolean x) throws SQLException
Writes the next attribute to the stream as a Java boolean. Writes the next attribute to the stream as a `String` in the Java programming language.

Parameters:
  `x` - the value to pass to the database
Throws:
  `SQLException` - if a database access error occurs
  `SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
Since:
  1.2

### writeByte

void writeByte(byte x) throws SQLException
Writes the next attribute to the stream as a Java byte. Writes the next attribute to the stream as a `String` in the Java programming language.

Parameters:
  `x` - the value to pass to the database
Throws:
  `SQLException` - if a database access error occurs
  `SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
Since:
  1.2

### writeShort

void writeShort(short x) throws SQLException
Writes the next attribute to the stream as a Java short. Writes the next attribute to the stream as a `String` in the Java programming language.

Parameters:
  `x` - the value to pass to the database
Throws:
  `SQLException` - if a database access error occurs
  `SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
Since:
  1.2

### writeInt

void writeInt(int x) throws SQLException
Writes the next attribute to the stream as a Java int. Writes the next attribute to the stream as a `String` in the Java programming language.

Parameters:
  `x` - the value to pass to the database
Throws:
  `SQLException` - if a database access error occurs
  `SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
Since:
  1.2

### writeLong

void writeLong(long x) throws SQLException
Writes the next attribute to the stream as a Java long. Writes the next attribute to the stream as a `String` in the Java programming language.

Parameters:
  `x` - the value to pass to the database
Throws:
  `SQLException` - if a database access error occurs
  `SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
Since:
  1.2

### writeFloat

void writeFloat(float x) throws SQLException
Writes the next attribute to the stream as a Java float. Writes the next attribute to the stream as a `String` in the Java programming language.

Parameters:
  `x` - the value to pass to the database
Throws:
  `SQLException` - if a database access error occurs
  `SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
Since:
  1.2

### writeDouble

void writeDouble(double x) throws SQLException
Writes the next attribute to the stream as a Java double. Writes the next attribute to the stream as a `String` in the Java programming language.

Parameters:
  `x` - the value to pass to the database
Throws:
  `SQLException` - if a database access error occurs
  `SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
Since:
  1.2

### writeBigDecimal

void writeBigDecimal(BigDecimal x) throws SQLException
Writes the next attribute to the stream as a java.math.BigDecimal object. Writes the next attribute to the stream as a `String` in the Java programming language.

Parameters:
  `x` - the value to pass to the database
Throws:
  `SQLException` - if a database access error occurs
  `SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
Since:
  1.2

### writeBytes

void writeBytes(byte[] x) throws SQLException
Writes the next attribute to the stream as an array of bytes. Writes the next attribute to the stream as a `String` in the Java programming language.

Parameters:
  `x` - the value to pass to the database
Throws:
  `SQLException` - if a database access error occurs
  `SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
Since:
  1.2

### writeDate

void writeDate(Date x) throws SQLException
Writes the next attribute to the stream as a java.sql.Date object. Writes the next attribute to the stream as a `java.sql.Date` object in the Java programming language.

Parameters:
  `x` - the value to pass to the database
Throws:
  `SQLException` - if a database access error occurs
  `SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
Since:
  1.2

### writeTime

void writeTime(Time x) throws SQLException
Writes the next attribute to the stream as a java.sql.Time object. Writes the next attribute to the stream as a `java.sql.Date` object in the Java programming language.

Parameters:
  `x` - the value to pass to the database
Throws:
  `SQLException` - if a database access error occurs
  `SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
Since:
  1.2

### writeTimestamp

void writeTimestamp(Timestamp x) throws SQLException
Writes the next attribute to the stream as a java.sql.Timestamp object. Writes the next attribute to the stream as a `java.sql.Date` object in the Java programming language.

Parameters:
  `x` - the value to pass to the database
Throws:
  `SQLException` - if a database access error occurs
  `SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
Since:
  1.2

### writeCharacterStream

void writeCharacterStream(Reader x) throws SQLException
Writes the next attribute to the stream as a stream of Unicode characters.

Parameters:
  `x` - the value to pass to the database
Throws:
  `SQLException` - if a database access error occurs
  `SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
Since:
  1.2

### writeAsciiStream

void writeAsciiStream(InputStream x) throws SQLException
Writes the next attribute to the stream as a stream of ASCII characters.

Parameters:
  `x` - the value to pass to the database
Throws:
  `SQLException` - if a database access error occurs
  `SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
Since:
  1.2

### writeBinaryStream

void writeBinaryStream(InputStream x) throws SQLException
Writes the next attribute to the stream as a stream of uninterpreted bytes.

Parameters:
  `x` - the value to pass to the database
Throws:
  `SQLException` - if a database access error occurs
  `SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
Since:
  1.2

### writeObject

void writeObject(SQLData x) throws SQLException
Writes to the stream the data contained in the given `SQLData` object. When the `SQLData` object is `null`, this method writes an SQL `NULL` to the stream. Otherwise, it calls the `SQLData.writeSQL` method of the given object, which writes the object's attributes to the stream. The implementation of the method `SQLData.writeSQL` calls the appropriate `SQLOutput` writer method(s) for writing each of the object's attributes in order. The attributes must be read from an `SQLInput` input stream and written to an `SQLOutput` output stream in the same order in which they were listed in the SQL definition of the user-defined type.

Parameters:
  `x` - the object representing data of an SQL structured or distinct type
Throws:
  `SQLException` - if a database access error occurs
  `SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
Since:
  1.2

### writeRef

void writeRef(Ref x) throws SQLException
Writes an SQL `REF` value to the stream.

Parameters:
  `x` - a `Ref` object representing data of an SQL `REF` value
Throws:
  `SQLException` - if a database access error occurs
  `SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
Since:
  1.2

### writeBlob

void writeBlob(Blob x) throws SQLException
Writes an SQL `BLOB` value to the stream.

Parameters:
  `x` - a `Blob` object representing data of an SQL `BLOB` value
Throws:
  `SQLException` - if a database access error occurs
  `SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
Since:
  1.2

### writeClob

void writeClob(Clob x) throws SQLException
Writes an SQL `CLOB` value to the stream.

Parameters:
  `x` - a `Clob` object representing data of an SQL `CLOB` value
Throws:
  `SQLException` - if a database access error occurs
  `SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
Since:
  1.2

### writeStruct

void writeStruct(Struct x) throws SQLException
Writes an SQL structured type value to the stream.

Parameters:
  `x` - a `Struct` object representing data of an SQL structured type
Throws:
  `SQLException` - if a database access error occurs
  `SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
Since:
  1.2

### writeArray

void writeArray(Array x) throws SQLException
Writes an SQL `ARRAY` value to the stream.

Parameters:
  `x` - an `Array` object representing data of an SQL `ARRAY` type
Throws:
  `SQLException` - if a database access error occurs
  `SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
Since:
  1.2

### writeURL

void writeURL(URL x) throws SQLException
Writes a SQL `DATALINK` value to the stream.

Parameters:
  `x` - a `java.net.URL` object representing the data of SQL DATALINK type
Throws:
  `SQLException` - if a database access error occurs
  `SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
Since:
  1.4

### writeNString

void writeNString(String x) throws SQLException
Writes the next attribute to the stream as a `String` in the Java programming language. The driver converts this to a SQL `NCHAR` or `NVARCHAR` or `LONGNVARCHAR` value (depending on the argument's size relative to the driver's limits on `NVARCHAR` values) when it sends it to the stream.

Parameters:
  `x` - the value to pass to the database
Throws:
  `SQLException` - if a database access error occurs
  `SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
Since:
  1.6

### writeNClob

void writeNClob(NClob x) throws SQLException
Writes an SQL `NCLOB` value to the stream.

Parameters:
  `x` - a `NClob` object representing data of an SQL `NCLOB` value
Throws:
  `SQLException` - if a database access error occurs
  `SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
Since:
  1.6

### writeRowId

void writeRowId(RowId x) throws SQLException
Writes an SQL `ROWID` value to the stream.

Parameters:
  `x` - a `RowId` object representing data of an SQL `ROWID` value
Throws:
  `SQLException` - if a database access error occurs
  `SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
Since:
  1.6

### writeSQLXML

void writeSQLXML(SQLXML x) throws SQLException
Writes an SQL `XML` value to the stream.

Parameters:
  `x` - a `SQLXML` object representing data of an SQL `XML` value
Throws:
  `SQLException` - if a database access error occurs, the `java.xml.transform.Result`, `Writer` or `OutputStream` has not been closed for the `SQLXML` object or if there is an error processing the XML value. The `getCause` method of the exception may provide a more detailed exception, for example, if the stream does not contain valid XML.
  `SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
Since:
  1.6

### writeObject

default void writeObject(Object x, SQLType targetSqlType) throws SQLException
Writes to the stream the data contained in the given object. The object will be converted to the specified targetSqlType before being sent to the stream.

When the `object` is `null`, this method writes an SQL `NULL` to the stream.

If the object has a custom mapping (is of a class implementing the interface `SQLData`), the JDBC driver should call the method `SQLData.writeSQL` to write it to the SQL data stream. If, on the other hand, the object is of a class implementing `Ref`, `Blob`, `Clob`, `NClob`, `Struct`, `java.net.URL`, or `Array`, the driver should pass it to the database as a value of the corresponding SQL type.

The default implementation will throw `SQLFeatureNotSupportedException`

Parameters:
  `x` - the object containing the input parameter value
  `targetSqlType` - the SQL type to be sent to the database.
Throws:
  `SQLException` - if a database access error occurs or if the Java Object specified by x is an InputStream or Reader object and the value of the scale parameter is less than zero
  `SQLFeatureNotSupportedException` - if the JDBC driver does not support this data type
Since:
  1.8
See Also:
  - `JDBCType`
  - `SQLType`