Progress
DataServer
for ORACLE Guide


Transaction Processing

When you run an ORACLE stored procedure from a Progress procedure, different scoping rules apply. A stored procedure has its own transaction context-it is not considered an operation within the Progress transaction from which you run it.

When you undo an entire transaction, any data manipulation that a stored procedure called from within that transaction executes (for example, as a result of SELECT, INSERT, DELETE, UPDATE, etc. statements) is undone. However, any data manipulation by a stored procedure that occurs in a subtransaction is not undone, if only the subtransaction is undone. To undo an entire transaction, the DataServer tells ORACLE to perform a ROLLBACK. To undo a subtransaction, the DataServer issues individual SQL statements to reverse the actions taken in the subtransaction. For example, if a subtransaction includes a CREATE statement, the DataServer tracks that information and issues a DELETE statement to undo the subtransaction. With stored procedures, however, the DataServer cannot track individual operations, so it cannot issue the appropriate statements to reverse them.

Any data definition that occurs in a stored procedure (for example, as a result of CREATE, DROP, ALTER, GRANT, etc. statements) is visible to other ORACLE users before the transaction is committed.


Copyright © 2004 Progress Software Corporation
www.progress.com
Voice: (781) 280-4000
Fax: (781) 280-4095