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 beginDDL() and 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(20) to 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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.