Oracle data types differ from OpenEdge data types. However, each Oracle internal data type supported by the DataServer has at least one OpenEdge equivalent.

The DataServer translates the Oracle data types into OpenEdge equivalents. When an Oracle data type has more than one OpenEdge equivalent, the DataServer supplies a default data type. The schema image contains the OpenEdge data definitions for the Oracle columns, which you can modify by using the Data Dictionary. For example, the DataServer assigns the NUMBER data type the OpenEdge equivalent, DECIMAL. You can then change the data type from DECIMAL to either INTEGER, INT64,or LOGICAL.

Note: In 10.1B, the OpenEdge INTEGER and INT64 data types, respectively, can each be recognized by the Oracle NUMBER data type.

See Modifying a schema image for an explanation of how to change OpenEdge data types in the schema image.

Note: You cannot change the data type of a stored procedure parameter. Although you can use the Data Dictionary to view the stored procedure properties in the schema holder, you cannot modify them.

Oracle allows users to define their own data types, known as external data types. Oracle converts these external types to an equivalent internal type. For example, a FLOAT data type maps to NUMBER. The DataServer also considers it to be a NUMBER and maps it to DECIMAL in the schema image by default. However, beginning in OpenEdge Release 10.1B, you can choose to update the NUMBER definition to an alternative INT64 data type. For more information, see the following table.

The following table lists the Oracle internal data types supported by the DataServer and their OpenEdge equivalents. The table also shows the default equivalent supplied by the DataServer for those Oracle data types with more than one OpenEdge equivalent. The sections directly following the table provide additional details about several of the Oracle data types and each data type's OpenEdge equivalent.

Table 1. Oracle and OpenEdge data types
Oracle data type OpenEdge equivalent data type
CHAR CHARACTER
CFILE CLOB
CLOB CLOB
VARCHAR2 CHARACTER
NCHAR1

NVARCHAR21

CHARACTER
NCLOB1 CLOB
NUMBER DECIMAL

INTEGER

INT64 2

LOGICAL

NUMBER (10)3 INT64
NUMBER (11)3 INT64
NUMBER (7,2)4 NUMBER(13,2)5 NUMBER (20*)6 DECIMAL
CURSOR INTEGER
DATE DATE

INTEGER

LONG CHARACTER
RAW (limited support) RAW
LONG RAW RAW
BLOB BLOB
BFILE BLOB
FLOAT DECIMAL
DATETIME (CHAR)7 CHARACTER
TIME INTEGER
LONG CHARACTER CHARACTER
UNDEFINED CHARACTER
ROWID CHARACTER
LOGICAL LOGICAL
Note: The only Oracle internal data type that the DataServer does not support is ROWID. The Oracle ROWID, however, has its programming equivalent in the OpenEdge ROWID. See the for more information.
1 Schema image code page must be UTF-8 to support these data types.
2 Starting with OpenEdge Release 10.1B, Oracle Data Servers users have the option to employ the INT64 data type, as needed, to better accommodate foreign column definitions. However, it is strongly recommended that you plan carefully and only make INT64 data type-related changes to those table columns and program variables that you expect will require large number values.
3 The number within parenthenses indicates the number of digits.
4 The numbers within parentheses indicate the NUMBER data type has a precision of 7 and a scale of 2
5 The numbers within the parentheses indicate that the NUMBER data type has a precision of 13 and a scale of 2.
6 The information in parentheses indicates 20 or more digits.
7 For more information, see Working with Datetime data types.