EXPLOITING & MANAGING CURSOR SHARING • ABOUT CURSOR SHARING • BIND VARIABLES & CURSOR PEEKING • USING THE CURSOR_SHARING PARAMETER
USING THE DATABASE RESULT CACHE • ABOUT THE RESULT CACHE • CONFIGURING THE RESULT CACHE • RESULT_CACHE_MAX_SIZE • RESULT_CACHE_MODE • RESULT_CACHE_MAX_RESULT • RESULT_CACHE_REMOTE_EXPIRATION • USING THE RESULT CACHE • MANAGING & MONITORING THE RESULT CACHE • Using V$RESULT_CACHE_STATISTICS • V$RESULT_CACHE_MEMORY • V$RESULT_CACHE_OBJECTS • V$RESULT_CACHE_DEPENDENCY
DYNAMIC SQL • ADVANTAGES & DISADVANTAGES OF DYNAMIC SQL • NATIVE DYNAMIC SQL • Dynamic UPDATE...RETURNING • PROGRAMMATIC DYNAMIC SQL USING DBMS_SQL()
USING COLLECTIONS • BULK BIND USING COLLECTIONS • About SQL%BULK_ROWCOUNT() • About SQL%BULK_EXCEPTIONS() • COLLECTION METHODS • MORE ABOUT THE RETURNING CLAUSE • RETURNING Clause With Multiple Rows • RETURNING With A Summary Function • ADVANCED COLLECTION FEATURES • IN INDICES OF Clause • IN VALUES OF Clause
SYSTEM-SUPPLIED PACKAGES: DBMS_METADATA() – PART I • WHY RETRIEVE OBJECT DEFINITIONS? • RETRIEVING DEFAULT METADATA • Using GET_DDL() • RETRIEVING CUSTOMIZED METADATA • Using OPEN() & CLOSE() • Using SET_FILTER() • Using SET_COUNT() • Using ADD_TRANSFORM() • Using FETCH DDL() • About SYS.KU$_DDL • About SYS.KU$_DDLS • Calling FETCH_DDL()
SYSTEM-SUPPLIED PACKAGES: DBMS_METADATA() – PART II • SET_TRANSFORM_PARAM() • GET_QUERY()
SYSTEM-SUPPLIED PACKAGES: DBMS_METADATA() – PART III • FETCH CLOB() • USING SET_FILTER() FOR DEPENDENT OBJECTS • SET_PARSE_ITEM() • RETRIEVING PRIMARY & DEPENDENT OBJECT DDL
SYSTEM-SUPPLIED PACKAGES: DBMS_REDEFINITION() • USING THE DBMS_REDEFINITION() PACKAGE • DBA_REDEFINITION_ERRORS • CAN_REDEF_TABLE() • START_REDEF_TABLE() • FINISH_REDEF_TABLE() • ABORT_REDEF_TABLE() • COPY_TABLE_DEPENDENTS() • SYNC_INTERIM_TABLE()
SYSTEM-SUPPLIED PACKAGES: • DBMS_LOB() • WORKING WITH EXTERNAL BFILES • WORKING WITH INTERNAL LOBS • SUBSTR() • INSTR() • DYNAMICALLY SETTING SECUREFILE OPTIONS
SYSTEM-SUPPLIED PACKAGES: OTHERS • LOB COMPRESSION WITH UTL_COMPRESS() • LZ_COMPRESS() • LZ_UNCOMPRESS() • DBMS_DESCRIBE() • UTL_MAIL()
ADVANCED INTERFACE METHODS • ABOUT EXTERNAL PROCEDURES • CALLING JAVA CLASSES • CALLING C PROGRAMS
PL/SQL ADVANCED PROGRAMMING & CODING TECHNIQUES • AUTONOMOUS TRANSACTIONS • USING NOCOPY FOR PARAMETERS • CHOOSING THE OPTIMUM DATA TYPE • About PLS_INTEGER • Using SIMPLE_INTEGER • CHAR Vs. VARCHAR2 • USEFUL PL/SQL CODING TECHNIQUES • HANDLING STRING LITERALS
INFLUENCING ORACLE PL/SQL COMPILATION • PL/SQL COMPILER OPTIMIZATION • PLSQL_OPTIMIZE_LEVEL • CONTROLLING COMPILATION MESSAGES • PL/SQL NATIVE EXECUTION
USING PL/SCOPE • CONFIGURING PL/SCOPE • PLSCOPE_SETTINGS • USING PL/SCOPE DATA • WORKSHOP SECTION • USING PL/SCOPE
APPLICATION TUNING WITH THE PL/SQL HIERARCHICAL PROFILER • WHAT IS THE HIERARCHICAL PROFILER? • CONFIGURING THE PROFILER • MANAGING PROFILER RUNS • ANALYZING PROFILER DATA • INTERPRETING THE RESULTS • DBMSHP_RUNS • DBMSHP_FUNCTION_INFO • DBMSHP_PARENT_CHILD_INFO
PL/SQL DEBUGGING WITH DBMS_TRACE() • USING THE TRACE FACILITY • USING DBMS_TRACE() TO MANAGE RUNS • EXAMINING THE TRACE DATA
PROTECTING AGAINST SQL INJECTION ATTACKS • UNDERSTANDING THE THREAT • APPLYING COUNTERMEASURES
IMPLEMENTING VIRTUAL PRIVATE DATABASES • UNDERSTANDING VPDS • PREPARING FOR A VPD • CONFIGURING A VPD • MANAGING APPLICATION CONTEXTS • MANAGING POLICIES & SECURITY RULES