Skip to main content

Posts

Showing posts with the label express

Mining Application Express data dictionary views: find unconditional processes

I ran into a problem yesterday on the  Oracle Dev Gym  (offering quizzes, workouts and classes on Oracle technologies). A number of rows of data were incorrectly deleted. I was able to use  Flashback Query  to restore them (thank you, thank you, Flashback Query!). Crisis averted.  But how did this come about? I recruited Chris Saxon to help me figure out how this could have happened. In relatively short order, we narrowed down the culprit to a process in the Dev Gym Application Express definition that was unconditionally "removing previews" - but was in fact removing all rows, "previews" or not. Ugh. So we fixed that. But it got me wondering and worrying: what other processes in my app are unconditional? And should they be? While some processes fire unconditionally on a page (for example, to get the data from tables and display them on the screen), many are (or should be!) restricted to a button press, the result of a conditional expression, or an ...