Files
oracle/idev/wm_goto_workspace.sql
2026-03-12 21:23:47 +01:00

87 lines
3.3 KiB
SQL

-- +----------------------------------------------------------------------------+
-- | Jeffrey M. Hunter |
-- | jhunter@idevelopment.info |
-- | www.idevelopment.info |
-- |----------------------------------------------------------------------------|
-- | Copyright (c) 1998-2012 Jeffrey M. Hunter. All rights reserved. |
-- |----------------------------------------------------------------------------|
-- | DATABASE : Oracle |
-- | FILE : wm_goto_workspace.sql |
-- | CLASS : Workspace Manager |
-- | PURPOSE : This script will list all workspaces and which workspace is the |
-- | current workspace. You are then prompted for the name of a |
-- | workspace to go to. This script then moves the current session |
-- | to the specified workspace. After a user goes to a workspace, |
-- | modifications to data can be made there. |
-- | NOTE : As with any code, ensure to test this script in a development |
-- | environment before attempting to run it in production. |
-- +----------------------------------------------------------------------------+
SET TERMOUT OFF;
COLUMN current_instance NEW_VALUE current_instance NOPRINT;
SELECT rpad(sys_context('USERENV', 'INSTANCE_NAME'), 17) current_instance
FROM dual;
SET TERMOUT ON;
PROMPT
PROMPT +------------------------------------------------------------------------+
PROMPT | Report : Go To Workspace |
PROMPT | Instance : &current_instance |
PROMPT +------------------------------------------------------------------------+
SET ECHO OFF
SET FEEDBACK 6
SET HEADING ON
SET LINESIZE 180
SET PAGESIZE 50000
SET TERMOUT ON
SET TIMING OFF
SET TRIMOUT ON
SET TRIMSPOOL ON
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"
PROMPT
PROMPT +------------------------------------------------------------------------+
PROMPT | All Workspaces |
PROMPT +------------------------------------------------------------------------+
SELECT
CASE WHEN dbms_wm.getworkspace = workspace THEN ' *'
ELSE null
END AS current_workspace
, owner
, workspace
, TO_CHAR(createtime, 'DD-MON-YYYY HH24:MI:SS') createtime
FROM
dba_workspaces
ORDER BY
owner
, workspace;
PROMPT
ACCEPT wm_goto_workspace_name CHAR PROMPT 'Enter name of workspace to go to: '
PROMPT
BEGIN
dbms_wm.gotoworkspace('&wm_goto_workspace_name');
END;
/
SELECT
CASE WHEN dbms_wm.getworkspace = workspace THEN ' *'
ELSE null
END AS current_workspace
, owner
, workspace
, TO_CHAR(createtime, 'DD-MON-YYYY HH24:MI:SS') createtime
FROM
dba_workspaces
ORDER BY
owner
, workspace;