(Insert blurb here, too lazy to type a description today. Read the variables and replace values as needed. It’s pretty straightforward.)
#!/bin/bash #Linux - Put your Dump File in this Directory VARIABLE_DATABASE_DIR="/DatabaseDir" #Windows - Put your Dump File in this Directory #VARIABLE_DATABASE_DIR="C:/DatabaseDir" VARIABLE_DATABASE_DUMP="myDump.dmp" VARIABLE_PDB="MyPDB" VARIABLE_SYS_ACCOUNT_PASSWORD="password" VARIABLE_SYSTEM_ACCOUNT_PASSWORD="password" VARIABLE_SCRIPT_TEMP_PATH=$(mktemp) VARIABLE_SCRIPT_TEMP_PATH+='.sql' echo "Generating SQL Script under $VARIABLE_SCRIPT_TEMP_PATH" echo "/* Begin SQL Script */ alter session set container=$VARIABLE_PDB CREATE OR REPLACE DIRECTORY DatabaseDir AS '$VARIABLE_DATABASE_DIR'; alter session set \"_ORACLE_SCRIPT\"=true; alter pluggable database $VARIABLE_PDB close immediate; alter pluggable database $VARIABLE_PDB open upgrade; alter session set container=$VARIABLE_PDB; alter system set MAX_STRING_SIZE=extended; @?/rdbms/admin/utl32k.sql alter pluggable database $VARIABLE_PDB close immediate; alter pluggable database $VARIABLE_PDB open; @?/rdbms/admin/utlrp.sql alter session set \"_ORACLE_SCRIPT\"=true; alter session set container=$VARIABLE_PDB; CREATE OR REPLACE DIRECTORY DatabaseDir AS '$VARIABLE_DATABASE_DIR'; commit; /* End SQL Script */" >> $VARIABLE_SCRIPT_TEMP_PATH echo "EXIT;" >> $VARIABLE_SCRIPT_TEMP_PATH VARIABLE_TIMESTAMP=$(date "+%Y-%m-%d_%H_%M_%S") VARIABLE_LOG_FILE="$VARIABLE_DATABASE_DUMP_" VARIABLE_LOG_FILE+=$VARIABLE_TIMESTAMP echo "##############################################" echo "#### BEGIN EXECUTION OF SQL PLUS COMMANDS ####" echo "##############################################" echo "" VARIABLE_LOG_FILE_SQLPLUS=$VARIABLE_LOG_FILE.sqlplus.log sqlplus "sys/$VARIABLE_SYS_ACCOUNT_PASSWORD@$VARIABLE_PDB as sysdba" @$VARIABLE_SCRIPT_TEMP_PATH >> $VARIABLE_LOG_FILE_SQLPLUS echo "" echo "#########################################" echo "#### BEGIN EXECUTION OF DUMP COMMAND ####" echo "#########################################" echo "" VARIABLE_LOG_FILE_EXPDP=$VARIABLE_LOG_FILE.expdp.log expdp "system/$VARIABLE_SYSTEM_ACCOUNT_PASSWORD@$VARIABLE_PDB" full=y directory=DatabaseDir dumpfile=$VARIABLE_DATABASE_DUMP logfile="$VARIABLE_LOG_FILE_EXPDP"