# 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 code fragment 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.Reader to get the data
            java.io.Reader ip = rs.getCharacterStream(1);

            // process the stream--this is just a generic way to
            // print the data
            char[] buff = new char[128];
            int size;
            while ((size = ip.read(buff)) != -1) {
                String chunk = new String(buff, 0, size);
                System.out.print(chunk);
            }
        }
        rs.close();
        s.close();
        conn.commit();

Parent topic: java.sql.ResultSet interface