# SQLInput

public interface **SQLInput** An input stream that contains a stream of values representing an
instance of an SQL structured type or an SQL distinct type.
This interface, used only for custom mapping, is used by the driver
behind the scenes, and a programmer never directly invokes
`SQLInput` methods. The *reader* methods
(`readLong`, `readBytes`, and so on)
provide a way for an implementation of the `SQLData`
interface to read the values in an `SQLInput` object.
And as described in `SQLData`, calls to reader methods must
be made in the order that their corresponding attributes appear in the
SQL definition of the type.
The method `wasNull` is used to determine whether
the last value read was SQL `NULL`.

When the method `getObject` is called with an
object of a class implementing the interface `SQLData`,
the JDBC driver calls the method `SQLData.getSQLType`
to determine the SQL type of the user-defined type (UDT)
being custom mapped. The driver
creates an instance of `SQLInput`, populating it with the
attributes of the UDT. The driver then passes the input
stream to the method `SQLData.readSQL`, which in turn
calls the `SQLInput` reader methods
in its implementation for reading the
attributes from the input stream.

### Public Method Summary

|---|---|
| abstract [Array](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/Array.html) | [readArray](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/SQLInput.html#readArray())() Reads an SQL `ARRAY` value from the stream and returns it as an `Array` object in the Java programming language. |
| abstract [InputStream](https://developers.google.com/j2objc/javadoc/jre/reference/java/io/InputStream.html) | [readAsciiStream](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/SQLInput.html#readAsciiStream())() Reads the next attribute in the stream and returns it as a stream of ASCII characters. |
| abstract BigDecimal | [readBigDecimal](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/SQLInput.html#readBigDecimal())() Reads the next attribute in the stream and returns it as a `java.math.BigDecimal` object in the Java programming language. |
| abstract [InputStream](https://developers.google.com/j2objc/javadoc/jre/reference/java/io/InputStream.html) | [readBinaryStream](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/SQLInput.html#readBinaryStream())() Reads the next attribute in the stream and returns it as a stream of uninterpreted bytes. |
| abstract [Blob](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/Blob.html) | [readBlob](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/SQLInput.html#readBlob())() Reads an SQL `BLOB` value from the stream and returns it as a `Blob` object in the Java programming language. |
| abstract boolean | [readBoolean](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/SQLInput.html#readBoolean())() Reads the next attribute in the stream and returns it as a `boolean` in the Java programming language. |
| abstract byte | [readByte](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/SQLInput.html#readByte())() Reads the next attribute in the stream and returns it as a `byte` in the Java programming language. |
| abstract byte\[\] | [readBytes](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/SQLInput.html#readBytes())() Reads the next attribute in the stream and returns it as an array of bytes in the Java programming language. |
| abstract [Reader](https://developers.google.com/j2objc/javadoc/jre/reference/java/io/Reader.html) | [readCharacterStream](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/SQLInput.html#readCharacterStream())() Reads the next attribute in the stream and returns it as a stream of Unicode characters. |
| abstract [Clob](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/Clob.html) | [readClob](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/SQLInput.html#readClob())() Reads an SQL `CLOB` value from the stream and returns it as a `Clob` object in the Java programming language. |
| abstract [Date](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/Date.html) | [readDate](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/SQLInput.html#readDate())() Reads the next attribute in the stream and returns it as a `java.sql.Date` object. |
| abstract double | [readDouble](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/SQLInput.html#readDouble())() Reads the next attribute in the stream and returns it as a `double` in the Java programming language. |
| abstract float | [readFloat](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/SQLInput.html#readFloat())() Reads the next attribute in the stream and returns it as a `float` in the Java programming language. |
| abstract int | [readInt](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/SQLInput.html#readInt())() Reads the next attribute in the stream and returns it as an `int` in the Java programming language. |
| abstract long | [readLong](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/SQLInput.html#readLong())() Reads the next attribute in the stream and returns it as a `long` in the Java programming language. |
| abstract [NClob](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/NClob.html) | [readNClob](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/SQLInput.html#readNClob())() Reads an SQL `NCLOB` value from the stream and returns it as a `NClob` object in the Java programming language. |
| abstract [String](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/String.html) | [readNString](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/SQLInput.html#readNString())() Reads the next attribute in the stream and returns it as a `String` in the Java programming language. |
| abstract [Object](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/Object.html) | [readObject](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/SQLInput.html#readObject())() Reads the datum at the head of the stream and returns it as an `Object` in the Java programming language. |
| abstract [Ref](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/Ref.html) | [readRef](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/SQLInput.html#readRef())() Reads an SQL `REF` value from the stream and returns it as a `Ref` object in the Java programming language. |
| abstract [RowId](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/RowId.html) | [readRowId](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/SQLInput.html#readRowId())() Reads an SQL `ROWID` value from the stream and returns it as a `RowId` object in the Java programming language. |
| abstract [SQLXML](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/SQLXML.html) | [readSQLXML](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/SQLInput.html#readSQLXML())() Reads an SQL `XML` value from the stream and returns it as a `SQLXML` object in the Java programming language. |
| abstract short | [readShort](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/SQLInput.html#readShort())() Reads the next attribute in the stream and returns it as a `short` in the Java programming language. |
| abstract [String](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/String.html) | [readString](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/SQLInput.html#readString())() Reads the next attribute in the stream and returns it as a `String` in the Java programming language. |
| abstract [Time](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/Time.html) | [readTime](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/SQLInput.html#readTime())() Reads the next attribute in the stream and returns it as a `java.sql.Time` object. |
| abstract [Timestamp](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/Timestamp.html) | [readTimestamp](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/SQLInput.html#readTimestamp())() Reads the next attribute in the stream and returns it as a `java.sql.Timestamp` object. |
| abstract [URL](https://developers.google.com/j2objc/javadoc/jre/reference/java/net/URL.html) | [readURL](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/SQLInput.html#readURL())() Reads an SQL `DATALINK` value from the stream and returns it as a `java.net.URL` object in the Java programming language. |
| abstract boolean | [wasNull](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/SQLInput.html#wasNull())() Retrieves whether the last value read was SQL `NULL`. |

## Public Methods

#### public abstract [Array](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/Array.html)
**readArray**
()

Reads an SQL `ARRAY` value from the stream and returns it as an
`Array` object in the Java programming language.

##### Returns

- an `Array` object representing data of the SQL `ARRAY` value at the head of the stream; `null` if the value read is SQL `NULL`

##### Throws

| [SQLException](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/SQLException.html) | if a database access error occurs |
| [SQLFeatureNotSupportedException](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/SQLFeatureNotSupportedException.html) | if the JDBC driver does not support this method |
|---|---|

#### public abstract [InputStream](https://developers.google.com/j2objc/javadoc/jre/reference/java/io/InputStream.html)
**readAsciiStream**
()

Reads the next attribute in the stream and returns it as a stream of ASCII characters.

##### Returns

- the attribute; if the value is SQL `NULL`, returns `null`

##### Throws

| [SQLException](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/SQLException.html) | if a database access error occurs |
| [SQLFeatureNotSupportedException](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/SQLFeatureNotSupportedException.html) | if the JDBC driver does not support this method |
|---|---|

#### public abstract BigDecimal
**readBigDecimal**
()

Reads the next attribute in the stream and returns it as a `java.math.BigDecimal`
object in the Java programming language.

##### Returns

- the attribute; if the value is SQL `NULL`, returns `null`

##### Throws

| [SQLException](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/SQLException.html) | if a database access error occurs |
| [SQLFeatureNotSupportedException](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/SQLFeatureNotSupportedException.html) | if the JDBC driver does not support this method |
|---|---|

#### public abstract [InputStream](https://developers.google.com/j2objc/javadoc/jre/reference/java/io/InputStream.html)
**readBinaryStream**
()

Reads the next attribute in the stream and returns it as a stream of uninterpreted
bytes.

##### Returns

- the attribute; if the value is SQL `NULL`, returns `null`

##### Throws

| [SQLException](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/SQLException.html) | if a database access error occurs |
| [SQLFeatureNotSupportedException](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/SQLFeatureNotSupportedException.html) | if the JDBC driver does not support this method |
|---|---|

#### public abstract [Blob](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/Blob.html)
**readBlob**
()

Reads an SQL `BLOB` value from the stream and returns it as a
`Blob` object in the Java programming language.

##### Returns

- a `Blob` object representing data of the SQL `BLOB` value at the head of the stream; `null` if the value read is SQL `NULL`

##### Throws

| [SQLException](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/SQLException.html) | if a database access error occurs |
| [SQLFeatureNotSupportedException](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/SQLFeatureNotSupportedException.html) | if the JDBC driver does not support this method |
|---|---|

#### public abstract boolean
**readBoolean**
()

Reads the next attribute in the stream and returns it as a `boolean`
in the Java programming language.

##### Returns

- the attribute; if the value is SQL `NULL`, returns `false`

##### Throws

| [SQLException](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/SQLException.html) | if a database access error occurs |
| [SQLFeatureNotSupportedException](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/SQLFeatureNotSupportedException.html) | if the JDBC driver does not support this method |
|---|---|

#### public abstract byte
**readByte**
()

Reads the next attribute in the stream and returns it as a `byte`
in the Java programming language.

##### Returns

- the attribute; if the value is SQL `NULL`, returns `0`

##### Throws

| [SQLException](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/SQLException.html) | if a database access error occurs |
| [SQLFeatureNotSupportedException](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/SQLFeatureNotSupportedException.html) | if the JDBC driver does not support this method |
|---|---|

#### public abstract byte\[\]
**readBytes**
()

Reads the next attribute in the stream and returns it as an array of bytes
in the Java programming language.

##### Returns

- the attribute; if the value is SQL `NULL`, returns `null`

##### Throws

| [SQLException](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/SQLException.html) | if a database access error occurs |
| [SQLFeatureNotSupportedException](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/SQLFeatureNotSupportedException.html) | if the JDBC driver does not support this method |
|---|---|

#### public abstract [Reader](https://developers.google.com/j2objc/javadoc/jre/reference/java/io/Reader.html)
**readCharacterStream**
()

Reads the next attribute in the stream and returns it as a stream of Unicode characters.

##### Returns

- the attribute; if the value is SQL `NULL`, returns `null`

##### Throws

| [SQLException](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/SQLException.html) | if a database access error occurs |
| [SQLFeatureNotSupportedException](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/SQLFeatureNotSupportedException.html) | if the JDBC driver does not support this method |
|---|---|

#### public abstract [Clob](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/Clob.html)
**readClob**
()

Reads an SQL `CLOB` value from the stream and returns it as a
`Clob` object in the Java programming language.

##### Returns

- a `Clob` object representing data of the SQL `CLOB` value at the head of the stream; `null` if the value read is SQL `NULL`

##### Throws

| [SQLException](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/SQLException.html) | if a database access error occurs |
| [SQLFeatureNotSupportedException](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/SQLFeatureNotSupportedException.html) | if the JDBC driver does not support this method |
|---|---|

#### public abstract [Date](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/Date.html)
**readDate**
()

Reads the next attribute in the stream and returns it as a `java.sql.Date` object.

##### Returns

- the attribute; if the value is SQL `NULL`, returns `null`

##### Throws

| [SQLException](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/SQLException.html) | if a database access error occurs |
| [SQLFeatureNotSupportedException](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/SQLFeatureNotSupportedException.html) | if the JDBC driver does not support this method |
|---|---|

#### public abstract double
**readDouble**
()

Reads the next attribute in the stream and returns it as a `double`
in the Java programming language.

##### Returns

- the attribute; if the value is SQL `NULL`, returns `0`

##### Throws

| [SQLException](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/SQLException.html) | if a database access error occurs |
| [SQLFeatureNotSupportedException](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/SQLFeatureNotSupportedException.html) | if the JDBC driver does not support this method |
|---|---|

#### public abstract float
**readFloat**
()

Reads the next attribute in the stream and returns it as a `float`
in the Java programming language.

##### Returns

- the attribute; if the value is SQL `NULL`, returns `0`

##### Throws

| [SQLException](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/SQLException.html) | if a database access error occurs |
| [SQLFeatureNotSupportedException](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/SQLFeatureNotSupportedException.html) | if the JDBC driver does not support this method |
|---|---|

#### public abstract int
**readInt**
()

Reads the next attribute in the stream and returns it as an `int`
in the Java programming language.

##### Returns

- the attribute; if the value is SQL `NULL`, returns `0`

##### Throws

| [SQLException](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/SQLException.html) | if a database access error occurs |
| [SQLFeatureNotSupportedException](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/SQLFeatureNotSupportedException.html) | if the JDBC driver does not support this method |
|---|---|

#### public abstract long
**readLong**
()

Reads the next attribute in the stream and returns it as a `long`
in the Java programming language.

##### Returns

- the attribute; if the value is SQL `NULL`, returns `0`

##### Throws

| [SQLException](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/SQLException.html) | if a database access error occurs |
| [SQLFeatureNotSupportedException](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/SQLFeatureNotSupportedException.html) | if the JDBC driver does not support this method |
|---|---|

#### public abstract [NClob](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/NClob.html)
**readNClob**
()

Reads an SQL `NCLOB` value from the stream and returns it as a
`NClob` object in the Java programming language.

##### Returns

- a `NClob` object representing data of the SQL `NCLOB` value at the head of the stream; `null` if the value read is SQL `NULL`

##### Throws

| [SQLException](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/SQLException.html) | if a database access error occurs |
| [SQLFeatureNotSupportedException](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/SQLFeatureNotSupportedException.html) | if the JDBC driver does not support this method |
|---|---|

#### public abstract [String](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/String.html)
**readNString**
()

Reads the next attribute in the stream and returns it as a `String`
in the Java programming language. It is intended for use when
accessing `NCHAR`,`NVARCHAR`
and `LONGNVARCHAR` columns.

##### Returns

- the attribute; if the value is SQL `NULL`, returns `null`

##### Throws

| [SQLException](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/SQLException.html) | if a database access error occurs |
| [SQLFeatureNotSupportedException](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/SQLFeatureNotSupportedException.html) | if the JDBC driver does not support this method |
|---|---|

#### public abstract [Object](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/Object.html)
**readObject**
()

Reads the datum at the head of the stream and returns it as an
`Object` in the Java programming language. The
actual type of the object returned is determined by the default type
mapping, and any customizations present in this stream's type map.

A type map is registered with the stream by the JDBC driver before the
stream is passed to the application.

When the datum at the head of the stream is an SQL `NULL`,
the method returns `null`. If the datum is an SQL structured or distinct
type, it determines the SQL type of the datum at the head of the stream.
If the stream's type map has an entry for that SQL type, the driver
constructs an object of the appropriate class and calls the method
`SQLData.readSQL` on that object, which reads additional data from the
stream, using the protocol described for that method.

##### Returns

- the datum at the head of the stream as an `Object` in the Java programming language;`null` if the datum is SQL `NULL`

##### Throws

| [SQLException](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/SQLException.html) | if a database access error occurs |
| [SQLFeatureNotSupportedException](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/SQLFeatureNotSupportedException.html) | if the JDBC driver does not support this method |
|---|---|

#### public abstract [Ref](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/Ref.html)
**readRef**
()

Reads an SQL `REF` value from the stream and returns it as a
`Ref` object in the Java programming language.

##### Returns

- a `Ref` object representing the SQL `REF` value at the head of the stream; `null` if the value read is SQL `NULL`

##### Throws

| [SQLException](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/SQLException.html) | if a database access error occurs |
| [SQLFeatureNotSupportedException](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/SQLFeatureNotSupportedException.html) | if the JDBC driver does not support this method |
|---|---|

#### public abstract [RowId](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/RowId.html)
**readRowId**
()

Reads an SQL `ROWID` value from the stream and returns it as a
`RowId` object in the Java programming language.

##### Returns

- a `RowId` object representing data of the SQL `ROWID` value at the head of the stream; `null` if the value read is SQL `NULL`

##### Throws

| [SQLException](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/SQLException.html) | if a database access error occurs |
| [SQLFeatureNotSupportedException](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/SQLFeatureNotSupportedException.html) | if the JDBC driver does not support this method |
|---|---|

#### public abstract [SQLXML](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/SQLXML.html)
**readSQLXML**
()

Reads an SQL `XML` value from the stream and returns it as a
`SQLXML` object in the Java programming language.

##### Returns

- a `SQLXML` object representing data of the SQL `XML` value at the head of the stream; `null` if the value read is SQL `NULL`

##### Throws

| [SQLException](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/SQLException.html) | if a database access error occurs |
| [SQLFeatureNotSupportedException](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/SQLFeatureNotSupportedException.html) | if the JDBC driver does not support this method |
|---|---|

#### public abstract short
**readShort**
()

Reads the next attribute in the stream and returns it as a `short`
in the Java programming language.

##### Returns

- the attribute; if the value is SQL `NULL`, returns `0`

##### Throws

| [SQLException](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/SQLException.html) | if a database access error occurs |
| [SQLFeatureNotSupportedException](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/SQLFeatureNotSupportedException.html) | if the JDBC driver does not support this method |
|---|---|

#### public abstract [String](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/String.html)
**readString**
()

Reads the next attribute in the stream and returns it as a `String`
in the Java programming language.

##### Returns

- the attribute; if the value is SQL `NULL`, returns `null`

##### Throws

| [SQLException](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/SQLException.html) | if a database access error occurs |
| [SQLFeatureNotSupportedException](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/SQLFeatureNotSupportedException.html) | if the JDBC driver does not support this method |
|---|---|

#### public abstract [Time](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/Time.html)
**readTime**
()

Reads the next attribute in the stream and returns it as a `java.sql.Time` object.

##### Returns

- the attribute; if the value is SQL `NULL`, returns `null`

##### Throws

| [SQLException](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/SQLException.html) | if a database access error occurs |
| [SQLFeatureNotSupportedException](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/SQLFeatureNotSupportedException.html) | if the JDBC driver does not support this method |
|---|---|

#### public abstract [Timestamp](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/Timestamp.html)
**readTimestamp**
()

Reads the next attribute in the stream and returns it as a `java.sql.Timestamp` object.

##### Returns

- the attribute; if the value is SQL `NULL`, returns `null`

##### Throws

| [SQLException](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/SQLException.html) | if a database access error occurs |
| [SQLFeatureNotSupportedException](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/SQLFeatureNotSupportedException.html) | if the JDBC driver does not support this method |
|---|---|

#### public abstract [URL](https://developers.google.com/j2objc/javadoc/jre/reference/java/net/URL.html)
**readURL**
()

Reads an SQL `DATALINK` value from the stream and returns it as a
`java.net.URL` object in the Java programming language.

##### Returns

- a `java.net.URL` object.

##### Throws

| [SQLException](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/SQLException.html) | if a database access error occurs, or if a URL is malformed |
| [SQLFeatureNotSupportedException](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/SQLFeatureNotSupportedException.html) | if the JDBC driver does not support this method |
|---|---|

#### public abstract boolean
**wasNull**
()

Retrieves whether the last value read was SQL `NULL`.

##### Returns

- `true` if the most recently read SQL value was SQL `NULL`; `false` otherwise

##### Throws

| [SQLException](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/SQLException.html) | if a database access error occurs |
| [SQLFeatureNotSupportedException](https://developers.google.com/j2objc/javadoc/jre/reference/java/sql/SQLFeatureNotSupportedException.html) | if the JDBC driver does not support this method |
|---|---|