We're considering the use of Oracle Workspaces for development/test environments. While its benefits are pretty clear concerning DML and data in general, my Google-Fu obviously wasn't sufficient finding answers to some DDL related questions. I know about the
commitDDL() wrappers to be used with DDL on version-enabled tables, and that a
*_LTS table is used in background for this. Still, several questions remained1:
Is DDL applied on the "workspace version" only, or "escalated" up to BASE/LIVE automatically, or is that depending on X?
We need to know this for development processes, e.g. whether we could try new implementations requiring table alterations on "isolated level" that way (using a workspace without affecting other processes on the same table using a different workspace).
While one might argue we could simply "try and find out", my concern is there might be different behavior as well. For example, I have a clear idea how it could work altering a column from
VARCHAR2(50) only for the current workspace (so this might work, simply by "view definition" in the workspaces using
substr()) -- but have my doubts on how add/drop column might be reflected (yes, by view definition -- but what if adding a
NOT NULL column without
DEFAULT, which theoretically were possible if the table is empty in all workspaces?) A simple try-and-err might miss things, so I'd prefer to know in advance (feel encouraged to attest your arguments with links to authoritative material).
1: yes, I know -- one question per post, so this is but the top of my ice-berg for now