Oracle Editions
Version 11.2.0.3
 
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%';
 
 
Morgan's Library Page Footer
This site is maintained by Dan Morgan. Last Updated: This site is protected by copyright and trademark laws under U.S. and International law. © 1998-2013 Daniel A. Morgan All Rights Reserved