Consultor Eletrônico



Kbase P82399: What is the maximum number of columns supported by the DataServer for Oracle?
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   6/2/2004
Status: Unverified

GOAL:

What is the maximum number of columns supported by the DataServer for Oracle?

FIX:

The limit for the maximum number of columns lies in the Oracle version, not in the OCI. The following is adapted from the documentation -

The limitations that ORACLE and Progress place on the number of columns or fields per table are important issues to consider when you plan a migration:

· ORACLE7 - 254 columns per table
· ORACLE8 - 1,000 columns per table
· Progress - 32,000 fields per table

When you use the Progress-to-ORACLE utility to create an ORACLE database, it adds columns to an ORACLE table to accommodate Progress functionality. Because ORACLE7 limits the size of a database table to 254 columns and ORACLE8 to 1,000 columns, you must plan for the additional columns generated by the utility when you create the database schema.
When you design the Progress database tables that you want to make compatible with ORACLE, leave enough columns free for the migration utility to use. The following lists how many columns on an ORACLE table each Progress object requires:

Database Object - Number of Columns

Record ID - One per table
Case-insensitive indexes One per indexed case-insensitive field
Array - One per array element
Sequence - One per sequence*

Use the following formula to calculate how many columns an ORACLE7 table has available for data:

columns available for fields = 254 - 1 - case-insensitive indexed fields - number of extent elements

For example, a table that contains 253 fields will convert correctly only if none of the fields are extents and you have marked none of the indexed fields as case insensitive. If your table includes 2 field extents, and each extent has 5 elements, the utility needs 10 columns to unroll the field extents. The ORACLE7 table then has only 243 columns available for other fields:

243 = 254 - 1 - 0 -10

A similar calculation can be applied for ORACLE8.