Consultor Eletrônico



Kbase P22260: How the DataServer resolves the progress_recid value for the views?
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   10/15/2008
Status: Verified

GOAL:

How the DataServer resolves the progress_recid value for the views?

GOAL:

How the DataServer gets the value of the progress_recid for the views?

FACT(s) (Environment):

Oracle DataServer
Progress 9.1x
Progress 9.0x
Progress 8.x
Progress 7.x

FIX:

Progress DataServer creates a view as a results of dropping column(s) from progress database that is already migrated to the oracle database. When progress creates a view, it creates view name appending "_V##" at the end of the table name. For instance, if one or more fields from a customer table was/were dropped, the generation of the delta.df using the oracle DataServer utility (Generate delta.sql Progress to Oracle...) will create a view with the following name:

customer_V##

where "customer" is the name of the original table. When dataserver needs to get sequence value from this table to resolve progress_recid, dataserver writes following SQL statement in the DataServer log file:

SELECT CUSTOMER_V##_seq.nextval FROM sys.dual

The DataServer then strips the last four characters from "customer_V##" view name and builds following SQL statement which actually gets sent over to Oracle database.

SELECT CUSTOMER_seq.nextval FROM sys.dual

Even though the view is created as a result of the modification of the table, it still uses the original table name to get the sequence value from the oracle to resolve the progress_recid value.