ocilib::Column Class Reference

Encapsulate a Resultset column or object member properties. More...

`#include <ocilib.hpp>`

Inherits ocilib::HandleHolder< OCI_Column *>.

## Public Types

enum | PropertyFlagsValues { NoFlags = OCI_CPF_NONE, IsIdentity = OCI_CPF_IS_IDENTITY, IsGeneratedAlways = OCI_CPF_IS_GEN_ALWAYS, IsGeneratedByDefaultOnNull = OCI_CPF_IS_GEN_BY_DEFAULT_ON_NULL }
| Column properties flags values. More...
typedef Flags< PropertyFlagsValues > | PropertyFlags
| Column properties flags. More...

## Public Member Functions

ostring | GetSQLType () const
| Return the Oracle SQL type name of the column data type. More...
ostring | GetFullSQLType () const
| Return the Oracle SQL Full name including precision and size of the column data type. More...
DataType | GetType () const
| Return the type of the given column.
unsigned int | GetSubType () const
| Return the OCILIB object subtype of a column. More...
CharsetForm | GetCharsetForm () const
| Return the charset form of the given column.
unsigned int | GetSize () const
| Return the size of the column. More...
int | GetScale () const
| Return the scale of the column for numeric columns.
int | GetPrecision () const
| Return the precision of the column for numeric columns.
int | GetFractionalPrecision () const
| Return the fractional precision of the column for Timestamp and Interval columns.
int | GetLeadingPrecision () const
| Return the leading precision of the column for Interval columns.
PropertyFlags | GetPropertyFlags () const
| Return the column property flags. More...
bool | IsNullable () const
| Return true if the column is nullable otherwise false.
bool | IsCharSemanticUsed () const
| Return true if the length of the column is character-length or false if it is byte-length. More...
TypeInfo | GetTypeInfo () const
| Return the type information object associated to the column. More...

## Detailed Description

Encapsulate a Resultset column or object member properties.

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

Definition at line 6771 of file ocilib.hpp.

## Member Typedef Documentation

## PropertyFlags

typedef Flags<PropertyFlagsValues> ocilib::Column::PropertyFlags

Column properties flags.

Possible values are Column::PropertyFlagsValues

Definition at line 6806 of file ocilib.hpp.

## Member Enumeration Documentation

## PropertyFlagsValues

enum ocilib::Column::PropertyFlagsValues

Column properties flags values.

Enumerator
NoFlags | The column has no flags or the OCI client does not support it

IsIdentity

- If Set, the column is an IDENTITY column
  - Otherwise, it is not an IDENTITY column

IsGeneratedAlways

Only valid when IsIdentity is set:

- If set, means that the value is "ALWAYS GENERATED"
- Otherwise mens that the value is "GENERATED BY"

IsGeneratedByDefaultOnNull

Only valid when IsIdentity is set:

- If set, means that the value is generated by default on NULL

Definition at line 6783 of file ocilib.hpp.

## Member Function Documentation

## GetSQLType()

ostring ocilib::Column::GetSQLType | ( |  | ) | const

inline

Return the Oracle SQL type name of the column data type.

Note
  For possible values, consults Oracle Documentation

Definition at line 6388 of file ocilib_impl.hpp.

References ocilib::Check(), ocilib::MakeString(), and OCI_ColumnGetSQLType().

## GetFullSQLType()

ostring ocilib::Column::GetFullSQLType | ( |  | ) | const

inline

Return the Oracle SQL Full name including precision and size of the column data type.

Note
  This function returns a description that matches the one given by SQL*Plus

Definition at line 6393 of file ocilib_impl.hpp.

References ocilib::Check(), ocilib::MakeString(), and OCI_ColumnGetFullSQLType().

## GetSubType()

unsigned int ocilib::Column::GetSubType | ( |  | ) | const

inline

Return the OCILIB object subtype of a column.

Note
  This call is valid for the following OCILIB types:
  - Clong and Blong
  - Clob, NClob and Blob
  - File
  - Timestamp
  - Interval

Warning
  - The returned values must be casted to the matching C++ class GetType() property type.
  - For a non valid type, it returns 0.

Definition at line 6409 of file ocilib_impl.hpp.

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

## GetSize()

unsigned int ocilib::Column::GetSize | ( |  | ) | const

inline

Return the size of the column.

Note
  For all types, the size is expressed is bytes, excepted for character based columns that were created with a character based size or of type NCHAR/NVARCHAR

Definition at line 6419 of file ocilib_impl.hpp.

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

## GetPropertyFlags()

Column::PropertyFlags ocilib::Column::GetPropertyFlags | ( |  | ) | const

inline

Return the column property flags.

Note
  This was introduced in Oracle 12cR1. It is currently used for identifying Identity columns. For earlier versions, it always return Columns::NoFlags

Definition at line 6444 of file ocilib_impl.hpp.

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

## IsCharSemanticUsed()

bool ocilib::Column::IsCharSemanticUsed | ( |  | ) | const

inline

Return true if the length of the column is character-length or false if it is byte-length.

Note
  This was introduced in Oracle 9i. So for version that are not supporting this property, it always return false

Definition at line 6454 of file ocilib_impl.hpp.

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

## GetTypeInfo()

TypeInfo ocilib::Column::GetTypeInfo | ( |  | ) | const

inline

Return the type information object associated to the column.

Note
  This call is used only for Named Object typed and collection columns. It returns a null object if the column is not a Named Object or a collection.

Definition at line 6459 of file ocilib_impl.hpp.

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