Establish connection to a CDB/PDB

Overview

Connecting to a CDB is only available to common users. Other users must connect using a service name associated with a PDB.

References

Reading Notes

"42.2 Connecting to a PDB with SQL*Plus" says:

You can use the following techniques to connect to a PDB with the SQL*Plus CONNECT command:

    • Local connection with operating system authentication
    • Database connection using easy connect
    • Database connection using a net service name

Procedure

BEQUEATH Connection

Via BEQUEATH:

sqlplus / as sysdba
ALTER SESSION SET container = vegemite;

Connection via Service

Find active services in a CDB:

set pages 1000
col network_name for a25
col name for a25
col pdb for a8
set lines 70
select name, network_name, pdb from cdb_services;

Sample output is:

NAME NETWORK_NAME PDB ------------------------- ------------------------- -------- SYS$BACKGROUND CDB$ROOT SYS$USERS CDB$ROOT jarXDB jarXDB CDB$ROOT jar.yaocm.id.au jar.yaocm.id.au CDB$ROOT vegemite.yaocm.id.au vegemite.yaocm.id.au VEGEMITE

Find Current Container

Find current container:

select sys_context('USERENV', 'CON_NAME') from dual;

Sample output:

SYS_CONTEXT('USERENV','CON_NAME') --------------------------------- CDB$ROOT