Wm remove 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 rollback workspace · Wm create workspace

Wm remove workspace supprime définitivement un workspace, via DBMS_WM.RemoveWorkspace : les données du workspace sont d'abord annulées (rollback), puis toutes les structures techniques associées sont supprimées — le workspace cesse d'exister.

Contraintes :

  • seuls les workspaces terminaux (« leaf », sans workspace enfant) peuvent être supprimés ;
  • aucune autre session ne doit être positionnée dans le workspace au moment de la suppression.

À la différence de Wm rollback workspace, qui vide le workspace de ses modifications mais conserve sa structure, RemoveWorkspace supprime le workspace lui-même.

Script

-- Supprime définitivement un workspace terminal (leaf)
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'

-- 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
FROM
    dba_workspaces
ORDER BY
    owner, workspace;

ACCEPT wm_remove_workspace_name CHAR PROMPT 'Enter name of workspace to remove: '

BEGIN
    dbms_wm.removeworkspace('&wm_remove_workspace_name');
END;
/

-- Vérification : le workspace supprimé a disparu de la liste
SELECT
    CASE WHEN dbms_wm.getworkspace = workspace THEN '    *' END AS current_workspace
  , owner
  , workspace
  , TO_CHAR(createtime, 'DD-MON-YYYY HH24:MI:SS') createtime
FROM
    dba_workspaces
ORDER BY
    owner, workspace;

Voir aussi