Data type conversion details
- Last Updated: February 11, 2026
- 4 minute read
- OpenEdge
- Version 13.0
- Documentation
Data type conversion details
The table below identifies each supported DataServer for MS SQL Server data type, its SQL-ODBC equivalent data type, and its supported OpenEdge equivalent data types. In the OpenEdge -equivalent data types column, the initial data type identified is the default. The data types in parentheses are alternative data types that you can specify in the schema holder for your MS SQL Server data source.
Note that the SQL-ODBC data types are presented as information only; you do not need to know nor use the SQL-ODBC data types to work with the DataServer for MS SQL Server.
| MS SQL Server data type | SQL-ODBC data type1 | OpenEdge-equivalent data types |
|---|---|---|
integer
|
SQL_INTEGER
|
|
bigint
|
SQL_BIGINT
|
INT644
|
smallint
|
SQL_SMALLINT
|
INTEGER
|
tinyint
|
SQL_TINYINT
|
|
decimal
|
SQL_DECIMAL
|
|
numeric5
|
SQL_DECIMAL
|
|
float6
|
SQL_FLOAT
|
|
double precision
|
SQL_DOUBLE
|
|
real
|
SQL_REAL
|
|
char7,8
|
SQL_CHAR
|
CHARACTER
|
nchar7,8
|
SQL_NCHAR
|
CHARACTER
|
varchar7,8
|
SQL_VARCHAR
|
CHARACTER
|
varchar(max)
|
SQL_VARCHAR
|
CHARACTER
|
nvarchar8
|
SQL_NVARCHAR
|
CHARACTER
|
text9
|
SQL_LONGVARCHAR
|
CHARACTER
|
ntext
|
SQL_LONGVARCHAR
|
|
nvarchar(max)
|
SQL_VARCHAR
|
|
money
|
SQL_DECIMAL
|
|
smallmoney
|
SQL_DECIMAL
|
|
datetime
|
SQL_TIMESTAMP
|
|
smalldatetime
|
SQL_TIMESTAMP
|
|
binary7
|
SQL_BINARY
|
CHARACTER
|
varbinary
|
SQL_VARBINARY
|
CHARACTER
|
varbinary(max)
|
|
|
image
|
SQL_LONGVARBINARY
|
|
bit
|
SQL_BIT
|
LOGICAL
|
timestamp12
|
SQL_VARBINARY
|
CHARACTER
|
identity,12,13
|
Depends on underlying type | Depends on underlying type |
uniqueidentifier12 |
SQL_VARBINARY
|
CHARACTER
|
compounded columns12 |
Depends on underlying type | Depends on underlying type |
INTEGER data types have a maximum
internal field size of 64-bits. The internal field expansion supports larger values defined
as INTEGER data types. INT64 data type enables the MS SQL Server
DataServer BIGINT data type to be successfully pulled into a schema holder. varbinary and varchar respectively.
This does not affect how the DataServer maps the MSS data types to OpenEdge data types.VARCHAR by default if "ABL
format" is used for field widths during migration. Fields whose SQL widths are less than
8000 are defined as varchar by default if "width" is used for fields widths
during migration, and larger character fields are defined as VARCHAR(MAX).
When the database uses unicode data types, the 800 byte record limit in SQL Server must be
expressed in 4000 characters, so the above limits are halved for unicode data. If there
are several large character fields in one record that each individually fall under the
maximum size limits so as to be defined as varchar, but in sum, exceed the maximum record
size for SQL server, it will be necessary to define the fields as a server
CLOB type, such as varchar(max) in order to
successfully create the records.
Text/ntext to
varchar(max)/nvarchar(max) in SQL Server 2005 and later.CHARACTER by an OpenEdge application is limited by the maximum size of a
record that can be passed to the client. The maximum record size for DataServer applications
is 32,000 bytes. Keep this in mind if you decide to map server CLOB type to
CHARACTER rather than CLOB. If you map server LOB data
to CHARACTER data types but you don't process the data in these fields on
the returned records, it is recommended that you construct field lists to exclude them from
your query results.By default, the initial value of a MS SQL Server
datetime or smalldatetimecolumn is the Unknown value (?). The default
initial values for binary and varbinary are also the Unknown value (?). The
MS SQL Server datetime and smalldatetime data types contain both date and time information.
The DataServer maps these to the OpenEdge DATE data type; however, you can
change the DATE data type to CHARACTER in the schema
holder. If you do this, remember to change the format to match the new data type. For
example, if you change the data type to CHARACTER, specify a character
format, such as x(26).DATE data type, OpenEdge truncates the time portion of the
date.PROGRESS_RECID identity column can be auto-generated in a migrated table
in order to represent ROWID for OpenEdge for that table. Your SQL Server
table can define an alternative identity column but a user-defined identity column cannot be
used like PROGRESS_RECID to represent ROWID. See ROWID function for more information.