Curso Programación PL/SQL Avanzada & Tuning con Oracle Database 11g Descripción: El lenguaje de programación PL/SQL está en el núcleo de la mayoría de las aplicaciones de base de datos Oracle. Este curso se enfocará en tres pilares fundamentales de la implementación efectiva de aplicaciones PL/SQL. Primero, exploraremos las características avanzadas del lenguaje, las cuales permiten construir aplicaciones poderosas y adaptables. A continuación, se discutirá sobre las técnicas de ajuste de desempeño que permitirán a las aplicaciones correr eficientemente. Finalmente, consideraremos medidas críticas de seguridad las cuales deberían ser implementadas para contrarrestar ataques de hackers y otros riesgos en seguridad. Audiencia: Este curso está orientado a desarrolladores de aplicaciones senior, desarrolladores que estarán construyendo, depurando y optimizando unidades de programas PL/SQL. Curso Programación PL/SQL Avanzada & Tuning con Oracle Database 11g 1
Objetivos:. Invocar procedimientos externos e integrarlos en aplicaciones PL/SQL. Estos incluyen clases de Java externas usando la interface JDBC y programas externos de C contenidos en librerías DLL. Usar SQL dinámico para extender la funcionalidad y flexibilidad de programas de la base de datos, incluyendo el paquete DBMS_SQL() Identificar vulnerabilidad a ataques de inyección SQL dentro de una aplicación y aplicar contramedidas para manejar de manera apropiada riesgos de seguridad. Incorporar colecciones y otros tipos avanzados dentro de la lógica de la aplicación para incrementar eficiencia y velocidad de ejecución. Trabajar con LOBs, incluyendo manipulación de datos de piezasinteligentes y modificación dinámica de opciones de almacenamiento de SecureFile. Expandir funcionalidad con paquetes utilitarios incluidos en la base de datos. Ajustar con el paquete DBMS_PROFILER() y depurar con el DBMS_TRACE(), ambos incluidos en la base de datos. Escribir código eficiente de PL/SQL y evitar errores de codificación comunes. Habilitar compilación nativa y la ejecución de unidades programáticas residentes en la base de datos. Controlar y manejar compilación de PL/SQL para ejecución de alta eficiencia. Analizar la estructura de código PL/SQL por medio de la utilería PL/Scope. Analizar el desempeño de aplicaciones PL/SQL y hallar cuellos de botella usando el PL/SQL Hierarachical Profiler. Curso Programación PL/SQL Avanzada & Tuning con Oracle Database 11g 2
Implementar mecanismos de seguridad de grano fino como parte de un modelo de seguridad avanzado usando contextos de aplicación y la base de datos privada virtual Oracle(VPD). Particionamiento dinámico y paralelización DML usando el paquete DBMS_PARALLEL_EXECUTE(). Prerequisitos: ORACLE DATABASE 11G: SQL FUNDAMENTALS ORACLE DATABASE 11G: PROGRAM WITH PL/SQL Horas: 35 horas. Curso Programación PL/SQL Avanzada & Tuning con Oracle Database 11g 3
1. DYNAMIC SQL ADVANTAGES & DISADVANTAGES NATIVE DYNAMIC SQL Dynamic UPDATE...RETURNING DYNAMIC SQL USING DBMS_SQL() 2. USING COLLECTIONS ABOUT COLLECTIONS BULK BIND USING COLLECTIONS COLLECTION METHODS MORE ABOUT THE RETURNING CLAUSE ADVANCED COLLECTION FEATURES Collection MULTISET Operations IN INDICES OF Clause IN VALUES OF Clause 3. SYSTEM-SUPPLIED PACKAGES: DBMS_METADATA() PART I WHY RETRIEVE OBJECT DEFINITIONS? RETRIEVING DEFAULT METADATA RETRIEVING CUSTOMIZED METADATA Using OPEN() & CLOSE() Using SET_FILTER() Using SET_COUNT() Using ADD_TRANSFORM() Content Using FETCH DDL() About SYS.KU$_DDL About SYS.KU$_DDLS Calling FETCH_DDL() 4. SYSTEM-SUPPLIED PACKAGES: DBMS_METADATA() PART II SET_TRANSFORM_PARAM() GET_QUERY() 5. SYSTEM-SUPPLIED PACKAGES: DBMS_METADATA() PART III FETCH CLOB() SET_FILTER() FOR DEPENDENT OBJECTS SET_PARSE_ITEM() PRIMARY & DEPENDENT OBJECT DDL 6. SYSTEM-SUPPLIED PACKAGES: DBMS_REDEFINITION() ABOUT TABLE REDEFINITION USING DBMS_REDEFINITION() DBA_REDEFINITION_ERRORS CAN_REDEF_TABLE() START_REDEF_TABLE() FINISH_REDEF_TABLE() ABORT_REDEF_TABLE() COPY_TABLE_DEPENDENTS() SYNC_INTERIM_TABLE() 7. SYSTEM-SUPPLIED PACKAGES: DBMS_LOB() WORKING WITH EXTERNAL BFILES WORKING WITH INTERNAL LOBS LoadBLOBFromFile(), LoadCLOBFromFile() Compare() GetLength() Append() Copy() Erase() Trim() Read() SUBSTR() INSTR() Write() DYNAMIC SECUREFILE OPTIONS GetOptions() SetOptions() 8. SYSTEM-SUPPLIED PACKAGES: OTHERS COMPRESSION WITH UTL_COMPRESS() LZ_COMPRESS() LZ_UNCOMPRESS() DBMS_DESCRIBE() UTL_MAIL() Set SMTP_OUT_SERVER Calling The Send() Procedure Calling The Send_Attach_xxx() Procedures DBMS_UTILITY() COMPILE_SCHEMA() DB_VERSION() WAIT_ON_PENDING_DML() 9. ADVANCED INTERFACE METHODS ABOUT EXTERNAL PROCEDURES CALLING JAVA CLASSES CALLING C PROGRAMS 10 PL/SQL ADVANCED PROGRAMMING & CODING TECHNIQUES AUTONOMOUS TRANSACTIONS USING NOCOPY FOR PARAMETERS CHOOSING THE OPTIMUM DATA TYPE Avoiding Implicit Data type Conversion Choosing Between NUMBER And PLS_INTEGER About PLS_INTEGER Using SIMPLE_INTEGER CHAR Variables Of Different Lengths VARCHAR2 Variables Of Different Lengths CHAR Vs. VARCHAR2 CHAR Vs. VARCHAR2 With An Equality Comparison USEFUL PL/SQL CODING TECHNIQUES HANDLING STRING LITERALS Curso Programación PL/SQL Avanzada & Tuning con Oracle Database 11g 4
11. INFLUENCING ORACLE PL/SQL COMPILATION PL/SQL COMPILER OPTIMIZATION PLSQL_OPTIMIZE_LEVEL CONTROLLING COMPILATION MESSAGES PL/SQL NATIVE EXECUTION 12. DYNAMIC PARTITIONING & PARALLELIZATION ABOUT DYNAMIC PARTITIONING (CHUNKS) CREATING & PROCESSING CHUNKS CREATE_TASK() CREATE_CHUNKS_BY_ROWID() CREATE_CHUNKS_BY_NUMBER_COL() EXECUTE_RUN_TASK() TASK_STATUS() DROP_TASK() MONITORING CHUNK PROCESSING 13. APPLICATION TUNING WITH THE PL/SQL HIERARCHICAL PROFILER 14. PL/SQL DEBUGGING WITH DBMS_TRACE() USING THE TRACE FACILITY DBMS_TRACE() TO MANAGE RUNS EXAMINING THE TRACE DATA EVENT_KIND Values 15. PROTECTING AGAINST SQL INJECTION ATTACKS UNDERSTANDING THE THREAT APPLYING COUNTERMEASURES 16. IMPLEMENTING VIRTUAL PRIVATE DATABASES UNDERSTANDING VPDS PREPARING FOR A VPD CONFIGURING A VPD MANAGING APPLICATION CONTEXTS Using SYS_CONTEXT() MANAGING POLICIES & SECURITY RULES DBMSHP_RUNS WHAT IS THE HIERARCHICAL PROFILER? CONFIGURING THE PROFILER MANAGING PROFILER RUNS ANALYZING PROFILER DATA INTERPRETING THE RESULTS DBMSHP_FUNCTION_INFO DBMSHP_PARENT_CHILD_INFO Formas de pago: Este pago puede realizarse de cualquiera de las siguientes maneras: Depósito Banamex cuenta 4923239 Suc. 575 a nombre de Desarrollo y Capacitación en Internet, S.A. de C. V. o transferencia bancaria CLABE 002180057549232394 Cheque a nombre de Desarrollo y Capacitación en Internet, S. A. de C. V. Curso Programación PL/SQL Avanzada & Tuning con Oracle Database 11g 5