OCILIB (C and C++ Driver for Oracle)  4.6.3
ocilib::Collection< T > Class Template Reference

Object identifying the SQL data types VARRAY and NESTED TABLE. More...

#include <ocilib.hpp>

Inherits ocilib::HandleHolder< OCI_Coll *>, and ocilib::Streamable.

Public Types

enum  CollectionTypeValues { Varray = OCI_COLL_VARRAY, NestedTable = OCI_COLL_NESTED_TABLE, IndexedTable = OCI_COLL_INDEXED_TABLE }
 Collection type enumerated values. More...
 
typedef Enum< CollectionTypeValuesCollectionType
 Collection type. More...
 
typedef CollectionIterator< CollectionElement< T > > iterator
 Common iterator declaration.
 
typedef CollectionIterator< const CollectionElement< T > > const_iterator
 Common const iterator declaration.
 

Public Member Functions

 Collection ()
 Create an empty null Collection instance.
 
 Collection (const TypeInfo &typeInfo)
 Parametrized constructor. More...
 
CollectionType GetType () const
 Return the type of the collection.
 
unsigned int GetMax () const
 Returns the maximum number of elements for the collection.
 
unsigned int GetSize () const
 Returns the total number of elements in the collection.
 
unsigned int GetCount () const
 Returns the current number of elements in the collection. More...
 
void Truncate (unsigned int size)
 Trim the given number of elements from the end of the collection. More...
 
void Clear ()
 Clear all items of the collection.
 
bool IsElementNull (unsigned int index) const
 check if the element at the given index is null More...
 
void SetElementNull (unsigned int index)
 Nullify the element at the given index. More...
 
bool Delete (unsigned int index) const
 Delete the element at the given position in the Nested Table Collection. More...
 
Get (unsigned int index) const
 Return the collection element value at the given position. More...
 
void Set (unsigned int index, const T &value)
 Set the collection element value at the given position. More...
 
void Append (const T &data)
 Append the given element value at the end of the collection. More...
 
TypeInfo GetTypeInfo () const
 Return the type information object associated to the collection.
 
Collection Clone () const
 Clone the current instance to a new one performing deep copy.
 
ostring ToString () const override
 return a string representation of the current collection
 
iterator begin ()
 Returns an iterator pointing to the first element in the collection.
 
const_iterator begin () const
 Returns a const iterator pointing to the first element in the collection.
 
iterator end ()
 Returns an iterator referring to the past-the-end element in the collection.
 
const_iterator end () const
 Returns a const iterator referring to the past-the-end element in the collection.
 
CollectionElement< T > operator[] (unsigned int index)
 Returns the element at a given position in the collection.
 
const CollectionElement< T > operator[] (unsigned int index) const
 Returns the element at a given position in the collection.
 

Detailed Description

template<class T>
class ocilib::Collection< T >

Object identifying the SQL data types VARRAY and NESTED TABLE.

This class wraps the OCILIB object handle OCI_Coll and its related methods

Definition at line 5181 of file ocilib.hpp.

Member Typedef Documentation

◆ CollectionType

template<class T>
typedef Enum<CollectionTypeValues> ocilib::Collection< T >::CollectionType

Collection type.

Possible values are Collection::CollectionTypeValues

Definition at line 5216 of file ocilib.hpp.

Member Enumeration Documentation

◆ CollectionTypeValues

Collection type enumerated values.

Enumerator
Varray 

Collection is a VARRAY

NestedTable 

Collection is a NESTED TABLE

IndexedTable 

Collection is a PL/SQL TABLE INDEX BY

Definition at line 5199 of file ocilib.hpp.

Constructor & Destructor Documentation

◆ Collection()

template<class T >
ocilib::Collection< T >::Collection ( const TypeInfo typeInfo)

Parametrized constructor.

Parameters
typeInfo- type info descriptor

Definition at line 3894 of file ocilib_impl.hpp.

References ocilib::Check(), ocilib::Collection< T >::Collection(), ocilib::TypeInfo::GetConnection(), OCI_CollCreate(), and OCI_CollFree().

Member Function Documentation

◆ GetCount()

template<class T >
unsigned int ocilib::Collection< T >::GetCount ( ) const

Returns the current number of elements in the collection.

Note
  • For VARRAYs, it returns the same value than GetSize() as VARRAYs cannot contains holes
  • For Nested Tables that are spare collections that can have holes, it returns the total number of elements minus the total of deleted elements

Definition at line 3941 of file ocilib_impl.hpp.

References ocilib::Check(), and OCI_CollGetCount().

◆ Truncate()

template<class T >
void ocilib::Collection< T >::Truncate ( unsigned int  size)

Trim the given number of elements from the end of the collection.

Parameters
size- Number of elements to trim

Definition at line 3948 of file ocilib_impl.hpp.

References ocilib::Check(), and OCI_CollTrim().

◆ IsElementNull()

template<class T >
bool ocilib::Collection< T >::IsElementNull ( unsigned int  index) const

check if the element at the given index is null

Parameters
index- Index of the element
Note
Collection Index start at 1

Definition at line 3960 of file ocilib_impl.hpp.

References ocilib::Check(), OCI_CollGetElem(), and OCI_ElemIsNull().

◆ SetElementNull()

template<class T >
void ocilib::Collection< T >::SetElementNull ( unsigned int  index)

Nullify the element at the given index.

Parameters
index- Index of the element
Note
Collection Index start at 1

Definition at line 3966 of file ocilib_impl.hpp.

References ocilib::Check(), OCI_CollGetElem(), and OCI_ElemSetNull().

◆ Delete()

template<class T >
bool ocilib::Collection< T >::Delete ( unsigned int  index) const

Delete the element at the given position in the Nested Table Collection.

Parameters
index- Index of the element to delete
Note
Collection indexes start at position 1.
Warning
Delete() is only valid for nested tables (e.g. when collection type is Collection::NestedTable
Returns
  • if the input collection is a nested table, it returns true if the element is successfully deleted
  • if the input collection is a VARRAY, it always returns false

Definition at line 3972 of file ocilib_impl.hpp.

References ocilib::Check(), and OCI_CollDeleteElem().

◆ Get()

template<class T >
T ocilib::Collection< T >::Get ( unsigned int  index) const

Return the collection element value at the given position.

Parameters
index- Index of the element

Definition at line 4002 of file ocilib_impl.hpp.

References ocilib::Check(), and OCI_CollGetElem().

◆ Set()

template<class T>
void ocilib::Collection< T >::Set ( unsigned int  index,
const T &  value 
)

Set the collection element value at the given position.

Parameters
index- Index of the element
value- Value to set

Definition at line 4008 of file ocilib_impl.hpp.

References ocilib::Check(), OCI_CollGetElem(), and OCI_CollSetElem().

◆ Append()