Oracle DBMS_PDB_ALTER_SHARING
Version 26ai

General Information
Library Note Morgan's Library Page Header
The best Oracle News for FY2026

Oracle Database 26ai will be available on generic Linux platforms in January and soon on AIX and Windows
Purpose This package can set a database object to one of the following types of common objects in a PDB: data-linked object, extended data-linked object, or metadata-linked object.

An application can be migrated to CDB$ROOT or to an application PDB. For example, an application can be migrated from an application installed in a PDB plugged into a 12.1 CDB to a PDB in a 12.2 CDB and this same requirement exists when working with 18c and above.
AUTHID CURRENT_USER
Dependencies
DBMS_PDB    
Documented Yes: Packages and Types Reference
Pragma PRAGMA SUPPLEMENTAL_LOG_DATA(default, UNSUPPORTED);
First Available 12.2
Security Model Owned by SYS with EXECUTE granted to the EXECUTE_CATALOG_ROLE role
Source {ORACLE_HOME}/rdbms/admin/dbmspdb_altshr.sql
Subprograms
 
SET_DATA_LINKED (new 23ai parameter)
Sets a database object to a data-linked common object. In a PDB a data-linked common object stores data in the application root that can be accessed and modified by all of the application PDBs in the application container. dbms_pdb_alter_sharing.set_data_linked(
schema_name  IN VARCHAR2,
object_name  IN VARCHAR2,
namespace    IN NUMBER,
edition_name IN VARCHAR2 DEFAULT NULL,
force        IN BOOLEAN  DEFAULT FALSE);
exec dbms_pdb_alter_sharing.set_data_linked('C##UWCLASS', 'ACCOUNTS', 1);

PL/SQL procedure successfully completed.
 
SET_EXT_DATA_LINKED (new 23ai parameter)
Sets a database object to an extended data-linked common object. In a PDB extended data-linked object, each application PDB can create its own specific data while sharing the common data in the application root. Only the data stored in the application root is common for all application PDBs. dbms_pdb_alter_sharing.set_ext_data_linked(
schema_name  IN VARCHAR2,
object_name  IN VARCHAR2,
namespace    IN NUMBER,
edition_name IN VARCHAR2 DEFAULT NULL,
force        IN BOOLEAN  DEFAULT FALSE);
exec dbms_pdb_alter_sharing.set_ext_data_linked('C##UWCLASS','ACCOUNTS', 1);

PL/SQL procedure successfully completed.
 
SET_METADATA_LINKED (new 23ai parameter)
Sets a database object to a metadata-linked common object. In a PDB, metadata-linked common objects store the metadata for specific objects, such as tables, so that the containers that share the application common object have the same structure but different data. dbms_pdb_alter_sharing.set_metadata_linked(
schema_name  IN VARCHAR2,
object_name  IN VARCHAR2,
namespace    IN NUMBER,
edition_name IN VARCHAR2 DEFAULT NULL,
force        IN BOOLEAN  DEFAULT FALSE);
exec dbms_pdb_alter_sharing.set_metadata_linked('C##UWCLASS','ACCOUNTS', 1);

PL/SQL procedure successfully completed.
 
SET_PROFILE_EXPLICIT
Sets a profile as an application common user in a PDB. This procedure is intended for migrating a user from a previous release to a PDB in the current release and must be invoked in an application install, patch, upgrade, or uninstall operation in an application root. dbms_pdb_alter_sharing.set_profile_explicit(profile_name IN VARCHAR2);
exec dbms_pdb_alter_sharing.set_profile_explicit('C##UWPROF');

PL/SQL procedure successfully completed.
 
SET_ROLE_EXPLICIT
Sets a role as an application common user in a PDB. This procedure is intended for migrating a user from a previous release to a PDB in the current release and must be invoked in an application install, patch, upgrade, or uninstall operation in an application root. dbms_pdb_alter_sharing.set_role_explicit(role_name IN VARCHAR2);
exec dbms_pdb_alter_sharing.set_role_explicit('C##UWROLE');

PL/SQL procedure successfully completed.
 
SET_SHARING_NONE (new 23ai parameter)
Sets sharing=none status on an object in an App Root. It is intended to be used in migration  cases where an application was already installed in a PDB or a non-CDB, where there was no support for application containers

This is a rename of the preexisting REMOVE_LINK procedure.
dbms_pdb_alter_sharing.set_sharing_none(
schema_name  IN VARCHAR2,
object_name  IN VARCHAR2,
namespace    IN NUMBER,
edition_name IN VARCHAR2 DEFAULT NULL,
force        IN BOOLEAN  DEFAULT FALSE);
exec dbms_pdb_alter_sharing.set_sharing_none('C##UWCLASS', 'ACCOUNTS', 1, 'ORA$BASE');

PL/SQL procedure successfully completed.
 
SET_USER_EXPLICIT
Sets a user as an application common user in a PDB. This procedure is intended for migrating a user from a previous release to a PDB in the current release and must be invoked in an application install, patch, upgrade, or uninstall operation in an application root. dbms_pdb_alter_sharing.set_user_explicit(user_name IN VARCHAR2);
exec dbms_pdb_alter_sharing.set_user_explicit('C##UWCLASS');

PL/SQL procedure successfully completed.

Related Topics
Application Containers
Built-in Functions
Built-in Packages
Container Database
DBMS_APPLICATION
DBMS_PDB
DBMS_PDB_APP_CON
DBMS_PDB_EXEC_SQL
Edition Based Redefinition
What's New In 21c
What's New In 26ai

Morgan's Library Page Footer
This site is maintained by Daniel Morgan. Last Updated: This site is protected by copyright and trademark laws under U.S. and International law. © 1998-2026 Daniel A. Morgan All Rights Reserved