# ResultSets and streaming columns

If the underlying object is itself an OutputStream class, getBinaryStream returns the object directly.

To get a field from the ResultSet using streaming columns, you can use the getXXXStream methods if the type supports it. See Streamable JDBC Data Types for a list of types that support the various streams. (See also Mapping of java.sql.Types to SQL Types.)

You can retrieve data from one of the supported data type columns as a stream, whether or not it was stored as a stream.

The following example shows how a user can retrieve a LONG VARCHAR column as a stream:

    // retrieve data as a stream
    ResultSet rs = s.executeQuery("SELECT b FROM atable");
    while (rs.next()) {
        // use a java.io.InputStream to get the data
        java.io.InputStream ip = rs.getAsciiStream(1);
        // process the stream--this is just a generic way to
        // print the data
        int c;
        int columnSize = 0;
        byte[] buff = new byte[128];
        for (;;) {
            int size = ip.read(buff);
            if (size == -1)
                break;
            columnSize += size;
            String chunk = new String(buff, 0, size);
            System.out.print(chunk);
        }
    }
    rs.close();
    s.close();
    conn.commit();

Parent topic: java.sql.ResultSet