Class: OCI8::Metadata::Column

Inherits:
Base
  • Object
show all
Defined in:
lib/oci8/metadata.rb

Overview

Metadata for a sequence.

This is returned by:

  • OCI8::Metadata::Table#columns

Instance Method Summary collapse

Methods inherited from Base

#obj_id, #obj_name, #obj_schema

Instance Method Details

#char_sizeObject

returns the column character length which is the number of characters allowed in the column. It is the counterpart of OCI8::Metadata::Column#data_size which gets the byte length.



1392
1393
1394
# File 'lib/oci8/metadata.rb', line 1392

def char_size
  attr_get_ub2(OCI_ATTR_CHAR_SIZE)
end

#char_used?Boolean

returns the type of length semantics of the column.

:byte

byte-length semantics

:char

character-length semantics.

(unavailable on Oracle 8.1 or lower)

Returns:

  • (Boolean)


1385
1386
1387
# File 'lib/oci8/metadata.rb', line 1385

def char_used?
  attr_get_ub1(OCI_ATTR_CHAR_USED) != 0
end

#charset_formObject

The character set form, if the column is of a string/character type



1478
1479
1480
# File 'lib/oci8/metadata.rb', line 1478

def charset_form
  __charset_form
end

#charset_idObject

The character set id, if the column is of a string/character type



1473
1474
1475
# File 'lib/oci8/metadata.rb', line 1473

def charset_id
  attr_get_ub2(OCI_ATTR_CHARSET_ID)
end

#charset_nameObject

The character set name, if the column is of a string/character type



1502
1503
1504
# File 'lib/oci8/metadata.rb', line 1502

def charset_name
  __charset_name(charset_id)
end

#data_sizeObject

The maximum size of the column. This length is returned in bytes and not characters for strings and raws. This returns character length multiplied by NLS ratio for character-length semantics columns when using Oracle 9i or upper.



1410
1411
1412
# File 'lib/oci8/metadata.rb', line 1410

def data_size
  attr_get_ub2(OCI_ATTR_DATA_SIZE)
end

#data_typeObject

the datatype of the column.



1415
1416
1417
# File 'lib/oci8/metadata.rb', line 1415

def data_type
  __data_type
end

#data_type_stringObject Also known as: type_string



1506
1507
1508
# File 'lib/oci8/metadata.rb', line 1506

def data_type_string
  __data_type_string
end

#fsprecisionObject

The fractional seconds precision of a datetime or interval.

(unavailable on Oracle 8.1 or lower)



1489
1490
1491
# File 'lib/oci8/metadata.rb', line 1489

def fsprecision
  attr_get_ub1(OCI_ATTR_FSPRECISION)
end

#inspectObject

:nodoc:



1515
1516
1517
# File 'lib/oci8/metadata.rb', line 1515

def inspect # :nodoc:
  "#<#{self.class.name}: #{name} #{__data_type_string}>"
end

#lfprecisionObject

The leading field precision of an interval

(unavailable on Oracle 8.1 or lower)



1496
1497
1498
# File 'lib/oci8/metadata.rb', line 1496

def lfprecision
  attr_get_ub1(OCI_ATTR_LFPRECISION)
end

#nameObject

column name



1420
1421
1422
# File 'lib/oci8/metadata.rb', line 1420

def name
  attr_get_string(OCI_ATTR_NAME)
end

#nullable?Boolean

Returns 0 if null values are not permitted for the column

Returns:

  • (Boolean)


1441
1442
1443
# File 'lib/oci8/metadata.rb', line 1441

def nullable?
  __boolean(OCI_ATTR_IS_NULL)
end

#precisionObject

The precision of numeric columns. If the precision is nonzero and scale is -127, then it is a FLOAT, else it is a NUMBER(precision, scale). For the case when precision is 0, NUMBER(precision, scale) can be represented simply as NUMBER.



1428
1429
1430
# File 'lib/oci8/metadata.rb', line 1428

def precision
  __is_implicit? ? attr_get_sb2(OCI_ATTR_PRECISION) : attr_get_ub1(OCI_ATTR_PRECISION)
end

#scaleObject

The scale of numeric columns. If the precision is nonzero and scale is -127, then it is a FLOAT, else it is a NUMBER(precision, scale). For the case when precision is 0, NUMBER(precision, scale) can be represented simply as NUMBER.



1436
1437
1438
# File 'lib/oci8/metadata.rb', line 1436

def scale
  attr_get_sb1(OCI_ATTR_SCALE)
end

#schema_nameObject

Returns a string with the schema name under which the type has been created



1457
1458
1459
1460
# File 'lib/oci8/metadata.rb', line 1457

def schema_name
  rv = attr_get_string(OCI_ATTR_SCHEMA_NAME)
  rv.length == 0 ? nil : rv
end

#to_sObject



1511
1512
1513
# File 'lib/oci8/metadata.rb', line 1511

def to_s
  %Q{"#{name}" #{__data_type_string}}
end

#type_metadataObject

to type metadata if possible



1463
1464
1465
1466
1467
1468
1469
1470
# File 'lib/oci8/metadata.rb', line 1463

def 
  case attr_get_ub2(OCI_ATTR_DATA_TYPE)
  when 108, 110 # named_type or ref
    (OCI8::Metadata::Type)
  else
    nil
  end
end

#type_nameObject

Returns a string which is the type name. The returned value will contain the type name if the datatype is :named_type or :ref. If the datatype is :named_type, the name of the named datatype’s type is returned. If the datatype is :ref, the type name of the named datatype pointed to by the REF is returned



1451
1452
1453
1454
# File 'lib/oci8/metadata.rb', line 1451

def type_name
  rv = attr_get_string(OCI_ATTR_TYPE_NAME)
  rv.length == 0 ? nil : rv
end