oracle.sql
Class BLOB

java.lang.Object
  |
  +--oracle.sql.Datum
        |
        +--oracle.sql.BLOB

public class BLOB
extends Datum
implements java.sql.Blob


Field Summary
static int DURATION_CALL
           
static int DURATION_SESSION
           
static int MAX_CHUNK_SIZE
           
static int MODE_READONLY
           
static int MODE_READWRITE
           
 
Method Summary
 void close()
          Close a previously opened BLOB.
static BLOB createTemporary(java.sql.Connection conn, boolean cache, int duration)
          Create a temporary blob.
static BLOB empty_lob()
          Return a empty lob.
 void freeTemporary()
          Free the contents and the locator of the temporary blob.
static void freeTemporary(BLOB temp_lob)
          Free the contents and the locator of the temporary blob.
 java.io.OutputStream getBinaryOutputStream()
          Oracle extension.
 java.io.OutputStream getBinaryOutputStream(long pos)
          Write to the BLOB from a stream at the requested position.
 java.io.InputStream getBinaryStream()
          Implements the Blob interface function.
 java.io.InputStream getBinaryStream(long pos)
          Read from the BLOB as a stream at the requested position.
 int getBufferSize()
          Oracle extension.
 byte[] getBytes(long pos, int length)
          Implements the Blob interface function.
 int getBytes(long pos, int length, byte[] buf)
          Oracle extension.
 int getChunkSize()
          Oracle extension.
 OracleConnection getConnection()
          Deprecated. since 9.0.0. Use getJavaSqlConnection() instead.
 java.sql.Connection getJavaSqlConnection()
          Oracle extension Return the java.sql.Connection associated with the receiver.
 boolean isConvertibleTo(java.lang.Class jClass)
          Oracle extension.
 boolean isEmptyLob()
          Return true if the lob locator points to a empty blob.
 boolean isOpen()
          Check whether the BLOB is opened.
 boolean isTemporary()
          Return true if the lob locator points to a temporary blob.
static boolean isTemporary(BLOB lob)
          Return true if the lob locator points to a temporary blob.
 long length()
          Implements the Blob interface function.
 void open(int mode)
          Open a BLOB in the indicated mode.
 long position(java.sql.Blob pattern, long start)
          Implements the Blob interface function.
 long position(byte[] pattern, long start)
          Implements the Blob interface function.
 int putBytes(long pos, byte[] bytes)
          Oracle extension.
 java.lang.Object toJdbc()
          Oracle extension.
 void trim(long newlen)
          Trim the value of the BLOB to the length you specify in the newlen parameter.
 
Methods inherited from class oracle.sql.Datum
asciiStreamValue, bigDecimalValue, binaryStreamValue, booleanValue, byteValue, characterStreamValue, dateValue, doubleValue, equals, floatValue, getBytes, getLength, getStream, intValue, longValue, makeJdbcArray, setBytes, setShareBytes, shareBytes, stringValue, timestampValue, timeValue
 
Methods inherited from class java.lang.Object
getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

MAX_CHUNK_SIZE

public static final int MAX_CHUNK_SIZE

DURATION_SESSION

public static final int DURATION_SESSION

DURATION_CALL

public static final int DURATION_CALL

MODE_READONLY

public static final int MODE_READONLY

MODE_READWRITE

public static final int MODE_READWRITE
Method Detail

length

public long length()
            throws java.sql.SQLException
Implements the Blob interface function. Return the length of the Binary Large OBject in bytes.
Specified by:
length in interface java.sql.Blob
Returns:
length of the BLOB in bytes

getBytes

public byte[] getBytes(long pos,
                       int length)
                throws java.sql.SQLException
Implements the Blob interface function. Return a copy of the contents of the BLOB at the requested position.
Specified by:
getBytes in interface java.sql.Blob
Parameters:
pos - is the first byte of the blob to be extracted.
length - is the number of consecutive bytes to be copied.
Returns:
a byte array containing a portion of the BLOB

getBinaryStream

public java.io.InputStream getBinaryStream()
                                    throws java.sql.SQLException
Implements the Blob interface function. Retrieve the entire BLOB as a stream.
Specified by:
getBinaryStream in interface java.sql.Blob
Returns:
a stream containing the BLOB data

position

public long position(byte[] pattern,
                     long start)
              throws java.sql.SQLException
Implements the Blob interface function. Determine the byte position at which the given byte pattern
Specified by:
position in interface java.sql.Blob
Parameters:
pattern - is the pattern to search for.
start - is the position at which to begin searching.
Returns:
the position at which the pattern appears, else -1.

position

public long position(java.sql.Blob pattern,
                     long start)
              throws java.sql.SQLException
Implements the Blob interface function. Determine the byte position at which the given pattern
Specified by:
position in interface java.sql.Blob
Parameters:
searchstr - is the pattern to search for.
start - is the position at which to begin searching.
Returns:
the position at which the pattern appears, else -1.

getBytes

public int getBytes(long pos,
                    int length,
                    byte[] buf)
             throws java.sql.SQLException
Oracle extension. Copy the contents of the BLOB at the requested position to suppied buffer.
Parameters:
pos - is the first byte of the blob to be extracted.
length - is the number of consecutive bytes to be copied.
buf - is the buffer to had the extracted bytes.
Returns:
a byte array containing a portion of the BLOB

putBytes

public int putBytes(long pos,
                    byte[] bytes)
             throws java.sql.SQLException
Oracle extension. Put data to the BLOB at the requested position.
Parameters:
pos - is the position data to be put.
bytes - is the data to be written into BLOB.
Returns:
the number of bytes actually written.

getBinaryOutputStream

public java.io.OutputStream getBinaryOutputStream()
                                           throws java.sql.SQLException
Oracle extension. Write to the BLOB from a stream.
Returns:
a output stream to write data to the BLOB

getChunkSize

public int getChunkSize()
                 throws java.sql.SQLException
Oracle extension. Get database LOB storage chunk size in database.
Returns:
size in bytes

getBufferSize

public int getBufferSize()
                  throws java.sql.SQLException
Oracle extension. Get ideal LOB db access buffer size.
Returns:
size in bytes

getJavaSqlConnection

public java.sql.Connection getJavaSqlConnection()
                                         throws java.sql.SQLException
Oracle extension Return the java.sql.Connection associated with the receiver. Since 9.0.0 not all Oracle JDBC connection objects are assignment compatible with oracle.jdbc.driver.OracleConnection.
Returns:
the connection
Throws:
java.sql.SQLException - if an error occurs
Since:
9.0.0

getConnection

public OracleConnection getConnection()
                               throws java.sql.SQLException
Deprecated. since 9.0.0. Use getJavaSqlConnection() instead.
Oracle extension. The OracleConnection object associated with the array.
Returns:
the connection if it is assignment compatible with oracle.jdbc.driver.OracleConnection
Throws:
java.sql.SQLException - if the connection is not assignment compatible

empty_lob

public static BLOB empty_lob()
                      throws java.sql.SQLException
Return a empty lob. An empty lob is used initialize a LOB column/attribute. Note: an empty lob can not be read or written
Returns:
a empty lob
Since:
8.1.7

isEmptyLob

public boolean isEmptyLob()
                   throws java.sql.SQLException
Return true if the lob locator points to a empty blob. False if it does not.
Returns:
true if the lob locator points to a empty blob. False if it does not.
Since:
8.1.7

getBinaryOutputStream

public java.io.OutputStream getBinaryOutputStream(long pos)
                                           throws java.sql.SQLException
Write to the BLOB from a stream at the requested position.
Parameters:
pos - is the position data to be put.
Returns:
a output stream to write data to the BLOB
Since:
8.2.0

getBinaryStream

public java.io.InputStream getBinaryStream(long pos)
                                    throws java.sql.SQLException
Read from the BLOB as a stream at the requested position.
Parameters:
pos - is the position data to be read.
Returns:
a input stream to read data from the BLOB
Since:
8.2.0

trim

public void trim(long newlen)
          throws java.sql.SQLException
Trim the value of the BLOB to the length you specify in the newlen parameter.
Parameters:
newlen - the new length of the BLOB.
Since:
8.2.0

createTemporary

public static BLOB createTemporary(java.sql.Connection conn,
                                   boolean cache,
                                   int duration)
                            throws java.sql.SQLException
Create a temporary blob.
Parameters:
cache - Specifies if LOB should be read into buffer cache or not.
duration - The duration of the temporary LOB. The following are valid values: DURATION_SESSION, DURATION_CALL.
Returns:
A temporary blob.
Since:
8.2.0

freeTemporary

public static void freeTemporary(BLOB temp_lob)
                          throws java.sql.SQLException
Free the contents and the locator of the temporary blob.
Parameters:
temp_lob - A temporary blob to be freeed.
Throws:
java.sql.SQLException - if temp_lob is a permanent lob or temp_lob has already been freed.
Since:
8.2.0

isTemporary

public static boolean isTemporary(BLOB lob)
                           throws java.sql.SQLException
Return true if the lob locator points to a temporary blob. False if it does not.
Parameters:
lob - the blob to test.
Returns:
true if the lob locator points to a temporary blob. False if it does not.
Since:
8.2.0

freeTemporary

public void freeTemporary()
                   throws java.sql.SQLException
Free the contents and the locator of the temporary blob.
Throws:
java.sql.SQLException - if self is a permanent lob or self has already been freed.
Since:
8.2.0

isTemporary

public boolean isTemporary()
                    throws java.sql.SQLException
Return true if the lob locator points to a temporary blob. False if it does not.
Returns:
true if the lob locator points to a temporary blob. False if it does not.
Since:
8.2.0

open

public void open(int mode)
          throws java.sql.SQLException
Open a BLOB in the indicated mode. Valid modes include MODE_READONLY, and MODE_READWRITE. It is an error to open the same LOB twice.
Since:
8.2.0

close

public void close()
           throws java.sql.SQLException
Close a previously opened BLOB.
Since:
8.2.0

isOpen

public boolean isOpen()
               throws java.sql.SQLException
Check whether the BLOB is opened.
Returns:
true if the LOB is opened.
Since:
8.2.0

toJdbc

public java.lang.Object toJdbc()
                        throws java.sql.SQLException
Oracle extension. Convert this data object into its default Java object type.
Returns:
this object.
Throws:
java.sql.SQLException - if any of the lower layer code throws an exception.
Overrides:
toJdbc in class Datum

isConvertibleTo

public boolean isConvertibleTo(java.lang.Class jClass)
Oracle extension. Test whether this data object can be converted to the specified Java data type.
Parameters:
jClass - specifies the Java data type to test against.
Returns:
true if this data object is convertible to the specified Java class, and a corresponding xxxValue() method is available; otherwise, a false is returned.
Overrides:
isConvertibleTo in class Datum