Consultor Eletrônico



Kbase P55374: Getting error 4212, 73, & 6447 when loading .d into ORACLE t
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   12/12/2003
Status: Unverified

FACT(s) (Environment):

Oracle DataServer

FACT(s) (Environment):

Progress 9.1x

SYMPTOM(s):

Getting error 4212 when loading single .d into ORACLE when ORACLE table is created based on Progress format.

A column in this row being inserted or updated is too large (4212)

Getting error 73 and 6447 when loading single .d into ORACLE when ORACLE table is created based on sql-width, double the Progress format.

SYSTEM ERROR: bfcr called with no template. (73)

ORACLE row may exceed 32k - can't allocate buffer for table <table name>(328) (6447)

Oracle tables were created with Pro-to-ORA

Many columns in Progress db have a large number of extents defined, i.e., 200

CAUSE:

Remember error 4212 occurs when the length of the column is too small for the data that is being imported into it, or the data being inserted is too large for the defined length of the column. This is a typical error message that basically tells the user to expand and/or increase the FORMAT of the column within ORACLE. Usually, these types of issues can be fixed when SQL-WIDTH is selected during your migration, thus the column length within ORACLE is approximately the double than the defined format of the field in Progress.

However in this case, the customer's columns (within the table) has so many extents, that it's not only doubling the extents but also adding the number of extents. For example, 1 column that has X(75) with 200 extents is now really 150 X 200=30000. This is already 30K. When the data is inserted (load of .d), the load fails with error 73 and 6447 because now the entire size of the record has reached 32K.

FIX:

Determine the record size within the column in Progress and the defined length of the column within ORACLE. If there are any records that are longer than the defined column length, then the column length within ORACLE will need to be expanded.