Constructs a new SerialArray
object from the given Array
object, using the given type map for the custom mapping of each element when the elements are SQL UDTs. This method does custom mapping if the array elements are a UDT and the given type map has an entry for that UDT. Custom mapping is recursive, meaning that if, for instance, an element of an SQL structured type is an SQL structured type that itself has an element that is an SQL structured type, each structured type that has a custom mapping will be mapped according to the given type map.
The new SerialArray
object contains the same elements as the Array
object from which it is built, except when the base type is the SQL type STRUCT
, ARRAY
, BLOB
, CLOB
, DATALINK
or JAVA_OBJECT
. In this case, each element in the new SerialArray
object is the appropriate serialized form, that is, a SerialStruct
, SerialArray
, SerialBlob
, SerialClob
, SerialDatalink
, or SerialJavaObject
object.
Note: (1) The Array
object from which a SerialArray
object is created must have materialized the SQL ARRAY
value's data on the client before it is passed to the constructor. Otherwise, the new SerialArray
object will contain no data.
Note: (2) If the Array
contains java.sql.Types.JAVA_OBJECT
types, the SerialJavaObject
constructor is called where checks are made to ensure this object is serializable.
Note: (3) The Array
object supplied to this constructor cannot return null
for any Array.getArray()
methods. SerialArray
cannot serialize null array values.
-
Parameters:
-
array
- the Array
object to be serialized
-
map
- a java.util.Map
object in which each entry consists of 1) a String
object giving the fully qualified name of a UDT (an SQL structured type or distinct type) and 2) the Class
object for the SQLData
implementation that defines how the UDT is to be mapped. The map parameter does not have any effect for Blob
, Clob
, DATALINK
, or JAVA_OBJECT
types.
-
Throws:
-
SerialException
- if an error occurs serializing the Array
object
-
SQLException
- if a database access error occurs or if the array or the map values are null