How to map the datatype NUMBER(38,0) to DECIMAL(38,0) for an Oracle OCI driver in TIBCO Data Virtualization.
book
Article ID: KB0073128
calendar_today
Updated On:
Products
Versions
TIBCO Data Virtualization
All supported versions
Description
In TIBCO Data Virtualization for an Oracle OCI driver, the datatype NUMBER(38,0) gets introspected as NUMBER(0,0) because of which the datatype gets mapped to TINYINT and not to DECIMAL(38,0)
Issue/Introduction
This article explains how to map the datatype NUMBER(38,0) to DECIMAL(38,0) for an Oracle OCI driver that maps it to TINYINT.
Environment
All supported environment
Resolution
One must follow the below steps to map the datatype correctly. In the below example Oracle 11g OCI driver has been taken into consideration, however the same can be added to other versions as well, for e.g. Oracle 19c OCI driver.
1) First take a backup of current file “oracle_11g_oci_driver_values.xml.” which is located under the path <TDV Install Dir> \conf\adapters\system\oracle_11g_oci_driver 2) Make the following change in the oracle_11g_oci_driver_values.xml file.
Add the following snippet to the oracle_11g_oci_driver_values.xml file : ------------------------------------------------------------------------------------------------------------------------------------------------ <common:attribute xmlns:common="http://www.compositesw.com/services/system/util/common"> <common:name>/introspection/datatype/numeric/overrideUnspecifiedPrecision</common:name> <common:type>INTEGER</common:type> <common:value>38</common:value> <common:configID>introspect.datatype.numeric.override_unspecified_precision</common:configID> </common:attribute>
3) After making the change restart the TDV Server. 4) Then from the studio right click on the Oracle data source and select the "Re-Introspect Now" menu option.
NOTE: Please test this in any of the test environments first and keep the backup of the current oracle_11g_oci_driver_values.xml. prior to making changes in production.