Consultor Eletrônico



Kbase P76543: FIND statement not finding records after applying delta.sql
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   5/9/2004
Status: Verified

FACT(s) (Environment):

Progress 9.1D

FACT(s) (Environment):

Oracle

SYMPTOM(s):

FIND statement not finding records after applying delta.sql

Records created before applying delta.sql not being found

Records created after applying delta.sql are found

CHANGE:

delta.sql applied to migrate schema changes from Progress to ORACLE

CAUSE:

An index in the ORACLE database used by the FIND statement was redefined by a delta.sql to be case-insensitive.

ORACLE supports only case-sensitive indexes, but Progress allows you to set the attributes of a field so that it is either case-sensitive or case-insensitive (case insensitive being the default). The DataServer makes this feature compatible across Progress and ORACLE databases.

In order for an index to act like it is case-insensitive, an additional column named U##emp_id is created in the relevant ORACLE table. This column will contain uppercase values.

If an index is changed from case-sensitive to -insensitive by applying a delta.sql, although the script will create a second column for the uppercase values, so that the index will work as case-insensitive, the column won't get populated with any values for data already existing in the database.

FIX:

The new U##emp_id column must be populated with uppercase values using SQL, e.g.

UPDATE table-name
SET U##column-name = UPPER(column-name);