Como descobrir o container atual da sessão no Oracle 12c

This post is also available in: English

O Oracle 12c está disponível agora e temos a capacidade de alterar constantemente o container ativo da sessão corrente.

Se você está utilizando o SQLPlus, é fácil verificar usando o comando "show con_name":

[oracle@syslogfubddsne001 ~]$ sqlplus / as sysdba

SQL*Plus: Release 12.1.0.1.0 Production on Wed Feb 19 11:42:19 2014

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options

SQL> show con_name

CON_NAME
------------------------------
CDB$ROOT
SQL> ALTER SESSION SET CONTAINER = PDB$SEED;

Session altered.

SQL> show con_name

CON_NAME
------------------------------
PDB$SEED
SQL>

No entanto, quando utilizamos outro client, a melhor forma de verificar é através da função "SYS_CONTEXT", já que o comando "show con_name" pode não funcionar:

Connected to Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 
Connected as SYS

SQL> select SYS_CONTEXT('USERENV', 'CON_NAME') NAME FROM DUAL;

NAME
--------------------------------------------------------------------------------
CDB$ROOT

SQL> ALTER SESSION SET CONTAINER = PDB$SEED;

Session altered

SQL> select SYS_CONTEXT('USERENV', 'CON_NAME') NAME FROM DUAL;

NAME
--------------------------------------------------------------------------------
PDB$SEED

SQL>

Também é possível usar "SYSCONTEXT('USERENV', 'CON_ID')" se o seu objetivo for obter o container ID!

Gostou? Não deixe de comentar ou deixar um 👍!

Deixe um comentário

Seu e-mail não será publicado.