Wm merge workspace

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche
Fiche express
Type Script/commande SQL*Plus (Oracle Workspace Manager)
Voir aussi Wm workspace · Wm refresh workspace · Wm freeze workspace

Wm merge workspace fusionne un workspace vers son parent, via DBMS_WM.MergeWorkspace : les modifications faites dans le workspace fusionné deviennent visibles dans le workspace parent. Pendant l'exécution de l'opération, le workspace courant est gelé en mode NO_ACCESS et le workspace parent est gelé en READ_ONLY — l'opération est donc bloquante le temps du merge.

Opération complémentaire de Wm refresh workspace, qui propage dans l'autre sens (du parent vers l'enfant).

Amélioration apportée : le script d'origine ne réaffichait pas la liste des workspaces après l'opération. La version ci-dessous ajoute cette vérification finale, par cohérence avec les autres scripts de la famille Workspace Manager.

Script

-- Fusionne un workspace vers son workspace parent
SET LINESIZE 180
SET PAGESIZE 50000
SET VERIFY OFF

COLUMN current_workspace FORMAT a10 HEADING 'Current'
COLUMN owner              FORMAT a20 HEADING 'Workspace Owner'
COLUMN workspace           FORMAT a30 HEADING 'Workspace Name'
COLUMN createtime            FORMAT a20 HEADING 'Create Time'
COLUMN freeze_status          FORMAT a8  HEADING 'Freeze|Status'
COLUMN freeze_mode              FORMAT a20 HEADING 'Freeze|Mode'

-- Tous les workspaces
SELECT
    CASE WHEN dbms_wm.getworkspace = workspace THEN '    *' END AS current_workspace
  , owner
  , workspace
  , TO_CHAR(createtime, 'DD-MON-YYYY HH24:MI:SS') createtime
  , freeze_status
  , freeze_mode
FROM
    dba_workspaces
ORDER BY
    owner, workspace;

ACCEPT wm_merge_workspace_name CHAR PROMPT 'Enter name of workspace to merge: '

BEGIN
    dbms_wm.mergeworkspace('&wm_merge_workspace_name');
END;
/

-- Vérification : le workspace fusionné a disparu de la liste (sauf s'il avait lui-même des enfants)
SELECT
    CASE WHEN dbms_wm.getworkspace = workspace THEN '    *' END AS current_workspace
  , owner
  , workspace
  , TO_CHAR(createtime, 'DD-MON-YYYY HH24:MI:SS') createtime
  , freeze_status
  , freeze_mode
FROM
    dba_workspaces
ORDER BY
    owner, workspace;

Voir aussi