Oracle JDBC API Reference
11g Release 2 ("11.2.0.3.0")

oracle.sql
Class StructDescriptor

java.lang.Object
  extended by oracle.sql.TypeDescriptor
      extended by oracle.sql.StructDescriptor
All Implemented Interfaces:
java.io.Serializable, oracle.jdbc.internal.ObjectData, OracleData, OracleTypeMetaData, OracleTypeMetaData.Struct, ORAData

public class StructDescriptor
extends TypeDescriptor
implements OracleTypeMetaData.Struct, java.io.Serializable

Descriptor of a SQL structured object. (That is an SQL Object type). Its main responsibility is understanding how to convert between various representations of such a struct.

There should be a method to return information about the fields (beyond their number. But there is no public representation for that.

See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from interface oracle.jdbc.OracleTypeMetaData
OracleTypeMetaData.Array, OracleTypeMetaData.ArrayStorage, OracleTypeMetaData.Kind, OracleTypeMetaData.Opaque, OracleTypeMetaData.Struct
 
Field Summary
static java.lang.String BUILD_DATE
           
static boolean TRACE
           
 
Fields inherited from class oracle.sql.TypeDescriptor
ANYDATASETTOID, ANYDATATOID, ANYTYPETOID, DEBUG_SERIALIZATION, RAWTOID, TYPECODE_BDOUBLE, TYPECODE_BFILE, TYPECODE_BFLOAT, TYPECODE_BLOB, TYPECODE_BOOLEAN, TYPECODE_CFILE, TYPECODE_CHAR, TYPECODE_CLOB, TYPECODE_DATE, TYPECODE_DECIMAL, TYPECODE_DOUBLE, TYPECODE_ERRHP, TYPECODE_FLOAT, TYPECODE_INTEGER, TYPECODE_INTERVAL_DS, TYPECODE_INTERVAL_YM, TYPECODE_ITABLE, TYPECODE_JDBC_ARRAY, TYPECODE_JDBC_JOBJECT, TYPECODE_JDBC_JOPAQUE, TYPECODE_JDBC_JSTRUCT, TYPECODE_JDBC_REF, TYPECODE_JDBC_STRUCT, TYPECODE_MLSLABEL, TYPECODE_NAMEDCOLLECTION, TYPECODE_NCHAR, TYPECODE_NCLOB, TYPECODE_NONE, TYPECODE_NUMBER, TYPECODE_NVARCHAR2, TYPECODE_OBJECT, TYPECODE_OCTET, TYPECODE_OPAQUE, TYPECODE_OTMFIRST, TYPECODE_OTMLAST, TYPECODE_PLS_INTEGER, TYPECODE_PTR, TYPECODE_RAW, TYPECODE_REAL, TYPECODE_RECORD, TYPECODE_REF, TYPECODE_SIGNED16, TYPECODE_SIGNED32, TYPECODE_SIGNED8, TYPECODE_SMALLINT, TYPECODE_SYSFIRST, TYPECODE_SYSLAST, TYPECODE_TABLE, TYPECODE_TIME, TYPECODE_TIME_TZ, TYPECODE_TIMESTAMP, TYPECODE_TIMESTAMP_LTZ, TYPECODE_TIMESTAMP_TZ, TYPECODE_UNSIGNED16, TYPECODE_UNSIGNED32, TYPECODE_UNSIGNED8, TYPECODE_UROWID, TYPECODE_VARCHAR, TYPECODE_VARCHAR2, TYPECODE_VARRAY, XMLTYPETOID
 
Method Summary
static StructDescriptor createDescriptor(oracle.sql.SQLName name, java.sql.Connection conn)
          Descriptor factory.
static StructDescriptor createDescriptor(oracle.sql.SQLName sqlName, java.sql.Connection conn, boolean recurse, boolean force)
          Descriptor factory.
static StructDescriptor createDescriptor(java.lang.String name, java.sql.Connection conn)
          Descriptor factory.
static StructDescriptor createDescriptor(java.lang.String name, java.sql.Connection conn, boolean recurse, boolean force)
          Descriptor factory.
 java.lang.String descType()
          Describe this type.
 AttributeDescriptor[] getAttributesDescriptor()
           
 java.lang.String getJavaClassName()
          Returns the external name of the JAVA_STRUCT type.
 OracleTypeMetaData.Kind getKind()
          Return the kind of type.
 java.lang.String getLanguage()
           
 int getLength()
          The number of fields in the Object Type.
 int getLocalAttributeCount()
          Returns the number of attributes defined in the subtype.
 java.sql.ResultSetMetaData getMetaData()
          Gets the metadata regarding this type.
 java.lang.String[] getSubtypeNames()
          Returns the SQL type names of the direct subtypes.
 java.lang.String getSupertypeName()
          Returns the SQL type name of the direct subtype.
 int getTypeCode()
          Returns type code.
 int getTypeVersion()
           
 boolean isFinalType()
          Indicates whether the object type is a final type.
 boolean isInstantiable()
          Indicates whether the object type is instantiable.
 boolean isJavaObject()
          Indicates whether the object type is a JAVA_STRUCT type or a STRUCT type.
 boolean isSubtype()
          Indicates whether the object type is a subtype.
 Datum[] toOracleArray(java.util.Map attributes)
           
 
Methods inherited from class oracle.sql.TypeDescriptor
getInternalTypeCode, getName, getPrecision, getScale, getSubtypeName, getTypeCodeName, initMetadataRecursively, initNamesRecursively, isTransient, printXML, printXML, setConnection, setPrecision, setScale, toDatum, toJDBCObject, toXMLString, toXMLString
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface oracle.jdbc.OracleTypeMetaData
getName, getSchemaName, getSQLName, getTypeCodeName
 

Field Detail

BUILD_DATE

public static final java.lang.String BUILD_DATE
See Also:
Constant Field Values

TRACE

public static final boolean TRACE
See Also:
Constant Field Values
Method Detail

createDescriptor

public static StructDescriptor createDescriptor(java.lang.String name,
                                                java.sql.Connection conn)
                                         throws java.sql.SQLException
Descriptor factory. Lookup the name in the database, and determine the characteristics of this array.

Parameters:
name - a String naming the type. (Not necessarily fully qualified)
conn - a Connection to a database
Returns:
the descriptor created.
Throws:
java.sql.SQLException

createDescriptor

public static StructDescriptor createDescriptor(java.lang.String name,
                                                java.sql.Connection conn,
                                                boolean recurse,
                                                boolean force)
                                         throws java.sql.SQLException
Descriptor factory. Lookup the name in the database, and determine the characteristics of this array.

Parameters:
name - a String naming the type. (Not necessarily fully qualified)
connection - a Connection to a database
recurse - a boolean to specify whether to create descriptors for component objects
force - a boolean to specify whether to replace any cached descriptor.
Returns:
the descriptor created.
Throws:
java.sql.SQLException

createDescriptor

public static StructDescriptor createDescriptor(oracle.sql.SQLName sqlName,
                                                java.sql.Connection conn,
                                                boolean recurse,
                                                boolean force)
                                         throws java.sql.SQLException
Descriptor factory. Lookup the name in the database, and determine the characteristics of this array.

Parameters:
name - a String naming the type. (Not necessarily fully qualified)
connection - a Connection to a database
recurse - a boolean to specify whether to create descriptors for component objects
force - a boolean to specify whether to replace any cached descriptor.
Returns:
the descriptor created.
Throws:
java.sql.SQLException

createDescriptor

public static StructDescriptor createDescriptor(oracle.sql.SQLName name,
                                                java.sql.Connection conn)
                                         throws java.sql.SQLException
Descriptor factory. Lookup the name in the database, and determine the characteristics of this array.

Parameters:
name - a String naming the type. (Not necessarily fully qualified)
connection - a Connection to a database
Returns:
the descriptor created.
Throws:
java.sql.SQLException

getKind

public OracleTypeMetaData.Kind getKind()
Description copied from interface: OracleTypeMetaData
Return the kind of type.

Specified by:
getKind in interface OracleTypeMetaData
Overrides:
getKind in class TypeDescriptor
Returns:
the kind, STRUCT

getTypeCode

public int getTypeCode()
                throws java.sql.SQLException
Description copied from class: TypeDescriptor
Returns type code.

Specified by:
getTypeCode in interface OracleTypeMetaData
Overrides:
getTypeCode in class TypeDescriptor
Throws:
java.sql.SQLException

getTypeVersion

public int getTypeVersion()
                   throws java.sql.SQLException
Specified by:
getTypeVersion in interface OracleTypeMetaData.Struct
Throws:
java.sql.SQLException

getAttributesDescriptor

public AttributeDescriptor[] getAttributesDescriptor()

getLength

public int getLength()
              throws java.sql.SQLException
The number of fields in the Object Type.

Specified by:
getLength in interface OracleTypeMetaData.Struct
Returns:
the size.
Throws:
java.sql.SQLException

toOracleArray

public Datum[] toOracleArray(java.util.Map attributes)
                      throws java.sql.SQLException
Throws:
java.sql.SQLException

getMetaData

public java.sql.ResultSetMetaData getMetaData()
                                       throws java.sql.SQLException
Gets the metadata regarding this type. The return ResultSetMetaData contains the attribute name, attribute type id and attribute type precision information. The column index in ResultSetMetaData maps to the position of the attribute in a Struct (with the first attribute being at index 1).

Specified by:
getMetaData in interface OracleTypeMetaData.Struct
Returns:
a ResultSetMetaData object that contains the type info
Throws:
if - database access error occurs
java.sql.SQLException

isFinalType

public boolean isFinalType()
                    throws java.sql.SQLException
Indicates whether the object type is a final type.

Specified by:
isFinalType in interface OracleTypeMetaData.Struct
Returns:
true if the object type is a final type and false otherwise.
Throws:
java.sql.SQLException
Since:
8.2.0

isSubtype

public boolean isSubtype()
                  throws java.sql.SQLException
Indicates whether the object type is a subtype.

Specified by:
isSubtype in interface OracleTypeMetaData.Struct
Returns:
true if the object type is a subtype and false otherwise.
Throws:
java.sql.SQLException
Since:
8.2.0

isInstantiable

public boolean isInstantiable()
                       throws java.sql.SQLException
Indicates whether the object type is instantiable.

Specified by:
isInstantiable in interface OracleTypeMetaData.Struct
Returns:
true if the object type is instantiable and false otherwise.
Throws:
java.sql.SQLException
Since:
8.2.0

isJavaObject

public boolean isJavaObject()
                     throws java.sql.SQLException
Indicates whether the object type is a JAVA_STRUCT type or a STRUCT type.

Returns:
true if the object type is a JAVA_STRUCT type and false if the object type is a STRUCT type.
Throws:
java.sql.SQLException
Since:
8.2.0

getSupertypeName

public java.lang.String getSupertypeName()
                                  throws java.sql.SQLException
Returns the SQL type name of the direct subtype.

Specified by:
getSupertypeName in interface OracleTypeMetaData.Struct
Returns:
the fully qualified name of the supertype. Returns null if the object type is not a subtype.
Throws:
java.sql.SQLException
Since:
8.2.0

getLocalAttributeCount

public int getLocalAttributeCount()
                           throws java.sql.SQLException
Returns the number of attributes defined in the subtype.

Specified by:
getLocalAttributeCount in interface OracleTypeMetaData.Struct
Returns:
number of subtype attributes.
Throws:
java.sql.SQLException
Since:
8.2.0

getSubtypeNames

public java.lang.String[] getSubtypeNames()
                                   throws java.sql.SQLException
Returns the SQL type names of the direct subtypes.

Specified by:
getSubtypeNames in interface OracleTypeMetaData.Struct
Returns:
the fully qualifed name of the direct subtypes. Returns an empty String array if there is no subtypes.
Throws:
java.sql.SQLException
Since:
8.2.0

getJavaClassName

public java.lang.String getJavaClassName()
                                  throws java.sql.SQLException
Returns the external name of the JAVA_STRUCT type.

Returns:
the JAVA_STRUCT's Java type name. Returns null if the object type is not a JAVA_STRUCT type.
Throws:
java.sql.SQLException
Since:
8.2.0

getLanguage

public java.lang.String getLanguage()
                             throws java.sql.SQLException
Returns:
JAVA if this is a JAVA_STRUCT, SQL otherwise
Throws:
java.sql.SQLException
Since:
8.2.0

descType

public java.lang.String descType()
                          throws java.sql.SQLException
Describe this type.

Returns:
the type information.
Throws:
java.sql.SQLException

Oracle JDBC API Reference
11g Release 2 ("11.2.0.3.0")

Copyright © 1998, 2007, Oracle. All rights reserved.