Chapter 8 - Interactive Oracle PDB Selector Script for SQL*Plus (CDB Environment)
vi connect_pdb.sh
Paste the following inside vi
#!/bin/bash
# Configuração do Oracle local
export ORACLE_HOME=/opt/oracle/product/23ai/dbhomeFree
export PATH=$ORACLE_HOME/bin:$PATH
export ORACLE_SID=FREE # SID do CDB
# Lista de PDBs
PDBS=("FREEPDB1" "FREEPDB2" "FREEPDB3" "FREEPDB4" "FREEPDB5")
list_pdbs() {
echo "PDBsAvailable disponíveis:Oracle PDBs:"
for i in "${!PDBS[@]}"; do
echo "$((i+1)). ${PDBS[$i]}"
done
}
echo "ConectarConnect ato uman Oracle PDB Oracle(interactive (modo interativo)session)"
echo "----------------------------------------------"
list_pdbs
echo "0. Sair"Exit"
read -p "EscolhaSelect othe númeroPDB do PDB:number: " choice
if [[ $choice -eq 0 ]]; then
echo "Saindo.Exiting..."
exit 0
elif [[ $choice -gt 0 && $choice -le ${#PDBS[@]} ]]; then
selected_pdb="${PDBS[$((choice-1))]}"
echo "ConectandoConnecting aoto PDB $selected_pdb..."
# Cria script temporário com ALTER SESSION + SHOW CON_NAME
TMP_SCRIPT=$(mktemp)
{
echo "alter session set container=$selected_pdb;"
echo "show con_name;"
echo "prompt conectadoConnected aoto PDB $selected_pdb."
} > "$TMP_SCRIPT"
# Executa o script inicial e entra em SQL*Plus de forma interativa
sqlplus / as sysdba @"$TMP_SCRIPT"
# Remove o script
rm -f "$TMP_SCRIPT"
else
echo "OpçãoInvalid inválida!option!"
exit 1
fi
Save and exit vi, then run:
chmod +x connect_pdb.sh
./connect_pdb.sh