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.