| General Information |
| Dependent Objects |
| edition$ |
_actual_edition_obj |
_current_edition_obj |
|
DBA |
ALL |
USER |
| dba_editioning_views |
all_editioning_views |
user_editioning_views |
| dba_editioning_views_ae |
all_editioning_views_ae |
user_editioning_views_ae |
| dba_editions |
all_editions |
|
| dba_edition_comments |
all_edition_comments |
|
| dba_source_ae |
all_source_ae |
user_source_ae |
|
| Related System Privileges |
| alter any edition |
create any edition |
drop any edition |
|
| Related Object Privileges |
use |
GRANT use ON EDITION ora$base TO public;
REVOKE use ON EDITION ora$base FROM public; |
| Edition Tool for Demos |
CREATE OR REPLACE FUNCTION edition_name RETURN VARCHAR2 IS
BEGIN
RETURN sys_context('USERENV', 'CURRENT_EDITION_NAME') || ' - ' ||
sys_context('USERENV', 'SESSION_EDITION_NAME');
END edition_name;
/ |
| Editionable Object Types |
| Functions |
Packages |
Synonyms |
Types & Type Bodies |
| Libraries |
Procedures |
Triggers |
Views |
|
| Non-Editionable Object Types |
| Functions used to create function based indexes |
| Types used to define object-tables: For example a VARRAY used as a table column |
|
| |
| Create Edition |
Create Edition
Oracle recommends that the AS CHILD OF syntax not be used in 11.2.0.1. |
CREATE EDITION <child_edition_name> [AS CHILD OF <parent_edition_name>]; |
conn / as sysdba
ALTER USER uwclass ENABLE EDITIONS;
conn uwclass/uwclass
CREATE OR REPLACE PROCEDURE test_proc AUTHID CURRENT_USER IS
BEGIN
NULL;
END test_proc;
/
SELECT object_name, object_type, edition_name
FROM user_objects
ORDER BY 2,1;
SELECT object_name, object_type, edition_name
FROM user_objects_ae
ORDER BY 2,1;
desc user_source
desc user_source_ae
SELECT * FROM all_editions;
CREATE EDITION demo_ed;
SELECT * FROM all_editions; |
| PL/SQL Object Editioning |
sho edition
SELECT sys_context('USERENV', 'CURRENT_EDITION_NAME') FROM dual;
-- created in default edition
CREATE OR REPLACE FUNCTION edition_test RETURN VARCHAR2 AUTHID CURRENT_USER IS
BEGIN
RETURN 'ORA$BASE';
END edition_test;
/
SELECT edition_test FROM dual;
ALTER SESSION SET EDITION = demo_ed;
sho edition
SELECT sys_context('USERENV', 'CURRENT_EDITION_NAME') FROM dual;
SELECT edition_test FROM dual;
-- created in the new edition
CREATE OR REPLACE FUNCTION edition_test RETURN VARCHAR2 AUTHID CURRENT_USER IS
BEGIN
RETURN sys_context('USERENV', 'CURRENT_EDITION_NAME');
END edition_test;
/
SELECT edition_test FROM dual;
ALTER SESSION SET EDITION = ora$base;
SELECT edition_test FROM dual;
DROP FUNCTION edition_name;
SELECT edition_name FROM dual;
ALTER SESSION SET EDITION = ora$base;
SELECT edition_name FROM dual; |
| |
| Alter Edition |
| Alter Edition Object |
ALTER EDITION <edition_name> <USABLE | UNUSABLE>; |
| See DROP EDITION Demo |
| |
| Commenting An Edition |
| Adding a comment to an edition |
COMMENT ON EDITION <edition_name> IS '<comment_text>'; |
col comments format a50
SELECT * FROM all_edition_comments;
COMMENT EDITION demo_ed IS 'This is a demonstration edition';
SELECT * FROM all_edition_comments;
COMMENT EDITION demo_ed IS '';
SELECT * FROM all_edition_comments; |
| |
| Edition Enable Users |
| Alter Edition Object |
ALTER EDITION <edition_name> <USABLE | UNUSABLE>; |
| See DROP EDITION Demo |
| |
| Drop Edition |
| Drop Edition Object |
DROP EDITION <edition_name> [CASCADE]; |
conn uwclass/uwclass
CREATE EDITION uwed3;
DROP EDITION uwed3;
ALTER EDITION uwed3 UNUSABLE;
DROP EDITION uwed3 CASCADE; |
| |
| Edition Related Queries |
| Object Information |
conn / as sysdba
desc obj$
set linesize 121
SELECT obj#, name, namespace, type#, status, spare3
FROM obj$
WHERE name = 'ORA$BASE'; |
| Default Edition Information |
conn / as sysdba
desc props$
set linesize 121
col value$ format a30
col comment$ format a40
SELECT *
FROM props$
WHERE name LIKE '%EDITION%'; |
| Edition Related Auditing |
conn / as sysdba
desc audit_actions
SELECT *
FROM audit_actions
WHERE name LIKE '%EDITION%'; |