oracle.sql
Class STRUCT

java.lang.Object
  |
  +--oracle.sql.Datum
        |
        +--oracle.sql.STRUCT
Direct Known Subclasses:
JAVA_STRUCT

public class STRUCT
extends Datum
implements java.sql.Struct

This class has two roles.

Like other classes in oracle.sql. it is a value class. That is, once it is constructed the user should not change its contents.


Constructor Summary
STRUCT(StructDescriptor type, java.sql.Connection conn, java.lang.Object[] attributes)
          Constructor.
 
Method Summary
TypeMethod
 java.lang.Object[] getAttributes()
          Implements the Struct interface function.
 java.lang.Object[] getAttributes(java.util.Map map)
          Implements the Struct interface function.
 boolean getAutoBuffering()
          Performance hint.
 OracleConnection getConnection()
          Deprecated. since 9.0.0. Use getJavaSqlConnection() instead.
 StructDescriptor getDescriptor()
          Oracle extension.
 java.sql.Connection getJavaSqlConnection()
          Oracle extension Return the java.sql.Connection associated with the receiver.
 Datum[] getOracleAttributes()
          Oracle extension.
 java.lang.String getSQLTypeName()
          Implements the Struct interface function Retrieves the SQL type name of the SQL structured type that this Struct object represents.
 boolean isConvertibleTo(java.lang.Class jClass)
          Determines if datum object can be converted to a particular class
 void setAutoBuffering(boolean enable)
          Performance hint.
 java.lang.Object toJdbc()
          Oracle extension.
 
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
 

Constructor Detail

STRUCT

public STRUCT(StructDescriptor type,
              java.sql.Connection conn,
              java.lang.Object[] attributes)
       throws java.sql.SQLException
Constructor. The raw bytes are computed at this time or a copy of attributes is made. In any event the caller is free to modify the array without affecting the values held in the STRUCT. For inherited object types we must check that the descriptor indicates that the type is instantiable. That database does not check on e.g. insertion but only on PL/SQL object creation. So we have to check here, too. There is an argument to be made that there is a good use for the STRUCT instance to carry data around and that the error ought to be when an insertion or udpate is attempted. But this keeps the "not instantiable" rather than "not storable" notion. And is is much more simple.
Parameters:
type - the SQLStructType used to convert the type to
attributes - the array specifying the attributes to be converted to raw bytes.
See Also:
oracle.sql.SQLStructType
Method Detail

getSQLTypeName

public java.lang.String getSQLTypeName()
                                throws java.sql.SQLException
Implements the Struct interface function Retrieves the SQL type name of the SQL structured type that this Struct object represents.
Specified by:
getSQLTypeName in interface java.sql.Struct
Throws:
java.sql.SQLException - if a database access error occurs

getAttributes

public java.lang.Object[] getAttributes()
                                 throws java.sql.SQLException
Implements the Struct interface function. Produces the ordered values of the attributes of the SQL structurec type that this Struct object represents. Each call returns a fresh array. This method uses the type map associated with the connection for customizations of the type mappings. If there is no entry in the connection's type map that matches the structured type that this Struct object represents, the driver uses the standard mapping.

Conceptually, this method calls the method getObject on each attribute of the structured type and returns a Java array containing the result.

Specified by:
getAttributes in interface java.sql.Struct
Returns:
an array containing the ordered attribute values
Throws:
java.sql.SQLException - if a database access error occurs

getAttributes

public java.lang.Object[] getAttributes(java.util.Map map)
                                 throws java.sql.SQLException
Implements the Struct interface function. Produces the ordered values of the attributes of the SQL structurec type that this Struct object represents. Each call returns a fresh array. This method uses the given type map for customizations of the type mappings. If there is no entry in the given type map that matches the structured type that this Struct object represents, the driver uses the standard mapping.

Conceptually, this method calls the method getObject on each attribute of the structured type and returns a Java array containing the result.

Specified by:
getAttributes in interface java.sql.Struct
Parameters:
map - a mapping of SQL type names to Java classes
Returns:
an array containing the ordered attribute values
Throws:
java.sql.SQLException - if a database access error occurs

getDescriptor

public StructDescriptor getDescriptor()
                               throws java.sql.SQLException
Oracle extension. Return the StructDescriptor object that contains the type information.
Returns:
the type descriptor

getOracleAttributes

public Datum[] getOracleAttributes()
                            throws java.sql.SQLException
Oracle extension. Retrun the array of Attributes as oracle.sql.XXX's. A fresh array is returned each time getOracleAttributes is called.
Returns:
datum array that containing the ordered attribute values as oracle.sql.Datum objects.

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

toJdbc

public java.lang.Object toJdbc()
                        throws java.sql.SQLException
Oracle extension. Returns the JDBC representation of the datum object
Returns:
an object containing the JDBC value
Throws:
java.sql.SQLException - if conversion to JDBC representation results in an error
Overrides:
toJdbc in class Datum

isConvertibleTo

public boolean isConvertibleTo(java.lang.Class jClass)
Determines if datum object can be converted to a particular class
Parameters:
cls - Class to convert to
Returns:
true, if conversion to cls is permitted false, if conversion to cls is not permitted
Overrides:
isConvertibleTo in class Datum

setAutoBuffering

public void setAutoBuffering(boolean enable)
                      throws java.sql.SQLException
Performance hint. Sets this struct's auto-buffering mode. If a struct is in auto-buffering mode, then the struct will keep a local copy of all its attributes. Then the next access to the same attributes will return a cloned copy. Otherwise, type conversion for each element is required. By default, a STRUCT is NOT in auto-buffering mode.
Parameters:
enable - - true enables auto-buffering; false disables auto-buffering
Since:
8.1.7
See Also:
getAutoBuffering()

getAutoBuffering

public boolean getAutoBuffering()
                         throws java.sql.SQLException
Performance hint. Get the current auto-buffering state.
Returns:
the current state of auto-buffering
Since:
8.1.7
See Also:
setAutoBuffering(boolean)