I use pre-built Oracle 12c r2
when I tried to sign up as sqlplus / as sysdba
I got a ORA-01017 which I solved with unset TWO_TASK
Since then, I can not sign in to the user I created Because I'm in the root container of the CDB
How to connect on PDB?
SQL> SELECT NAME, CON_ID, DBID, CON_UID, GUID FROM V$CONTAINERS ORDER BY CON_ID;
NAME
--------------------------------------------------------------------------------
CON_ID DBID CON_UID GUID
---------- ---------- ---------- --------------------------------
CDB$ROOT
1 776972821 1 4700A987085A3DFAE05387E5E50A8C7B
PDB$SEED
2 1737080764 1737080764 51C985B6B6D35149E0530100007FC08B
ORCL
3 4079644691 4079644691 51C99766D7E2568DE0530100007F4FAE
1 Answer 1
In the root container you can switch the current session to a specific PDB with
ALTER SESSION SET container=orcl;
If you want to actually connect to a specific container (because the user only exists in that container or you have an application which should not know about containers) then you have to connect to the actual net service for the specific PDB. You can use lsnrctl service
or check the default tnsnames.ora. There is a good article about this.
This requires some preparation, so check out the Oracle documentation for the concepts as well, but in essence you would have to use a TNS alias or connection description specifying SERVICE_NAME=PDB1 (in your case probably orcl
, although that’s a uncommon name for a PDB) instead of a SID or the CDB net service name.
sqlplus username/password@ORCL
.