Wm disable versioning
Aller à la navigation
Aller à la recherche
| Fiche express | |
|---|---|
| Type | Script/commande SQL*Plus (Oracle Workspace Manager) |
| Voir aussi | Wm workspace · Wm enable versioning · Wm remove workspace |
Wm disable versioning désactive le versionnement Workspace Manager sur une table, via DBMS_WM.DisableVersioning. Ce script inverse l'effet de Wm enable versioning : il supprime les structures techniques créées par Workspace Manager pour gérer les versions de lignes, sans toucher aux données du workspace LIVE.
Points importants :
- la hiérarchie de workspaces et les savepoints existants ne sont pas supprimés, mais toutes les lignes reviennent à un état unique identique au workspace
LIVE; - s'il existait plusieurs versions d'une même ligne dans
LIVE, seule la version la plus récente est conservée — les autres versions sont perdues ; - seul le propriétaire de la table ou un utilisateur avec le rôle
WM_ADMIN_ROLEpeut désactiver le versionnement ; - une exception est levée si la table n'est pas version-enabled.
Le script affiche la liste des tables versionnées avant et après l'opération.
Script
-- Désactive le versionnement Workspace Manager sur une table (owner.table)
SET LINESIZE 180
SET PAGESIZE 50000
SET VERIFY OFF
COLUMN getworkspace FORMAT a50 HEADING 'Current Workspace'
COLUMN ver_tables FORMAT a50 HEADING 'All Current Versioned Tables'
SELECT dbms_wm.getworkspace FROM dual;
SELECT
owner || '.' || table_name AS ver_tables
FROM
wmsys.wm$versioned_tables
UNION ALL
SELECT
'No versioned tables found'
FROM
dual
WHERE NOT EXISTS (SELECT owner, table_name FROM wmsys.wm$versioned_tables)
ORDER BY 1;
ACCEPT wm_ev_owner CHAR PROMPT 'Enter table owner : '
ACCEPT wm_ev_table CHAR PROMPT 'Enter table name : '
DEFINE wm_ev_table_name = &wm_ev_owner..&wm_ev_table
BEGIN
dbms_wm.disableversioning('&wm_ev_table_name');
END;
/
SELECT
owner || '.' || table_name AS ver_tables
FROM
wmsys.wm$versioned_tables
UNION ALL
SELECT
'No versioned tables found'
FROM
dual
WHERE NOT EXISTS (SELECT owner, table_name FROM wmsys.wm$versioned_tables)
ORDER BY 1;
Voir aussi
- Wm workspace — vue d'ensemble des workspaces et tables versionnées
- Wm enable versioning — activer le versionnement sur une table
- Wm remove workspace — supprimer un workspace devenu inutile