o
OPP 2010 IS PACKED WITH THE TRAINING YOU NEED TO SUCCEED!

Steven Feuerstein from, PL/SQL Evangelist, Quest Software and OPP Conference Chair, has organized this conference to take your knowledge of PL/SQL to the next level!— See our expert lineup of speakers below!

Presentations and Abstracts
Check out the proposed classes at OPP2010!

Track 1 Track 2

Track 1 Day 1

Session 1- 10:15-11:45am
Error Management in PL/SQL Applications

Steven Feuerstein, Quest Software

This session takes you beyond the basics of exception handling in PL/SQL to explore the wide range of specialized error management features in Oracle, plus recommendations for best practices for consistent, robust application construction. We will talk about FORALL's SAVE EXCEPTIONS, the DBMS_ERRLOG package, the AFTERSERVERERROR trigger, the DBMS_UTILITY.FORMAT_ERROR_BACKTRACE function, and more. In addition, we will talk about hiding error management functionality behind a PL/SQL packaged API and then deploying it as a set of services for application developers.

Session 2- 12:00-1:30pm
Programming with Collections
Steven Feuerstein, Quest Software
Collections (array-like structures in PL/SQL) are critical data structures that are used in some of the most important features of PL/SQL. Every PL/SQL developer should have a deep familiarity with collections and the wide range of features that Oracle has implemented for them over the years. This session introduces collections and quickly moves on to detailed explanations of collection methods, how to leverage string indexing in associative arrays, multi-level collections, set-level operations on nested tables and more.

Session 3- 2:30-4:00pm
Turbo-charge PL/SQL Execution with Bulk Processing
Steven Feuerstein, Quest Software
The focus of this first presentation is on enhancing the performance of multi-row SQL statements executed from within PL/SQL, using FORALL and BULK COLLECT. After attending this seminar, you'll be able to create new programs using the features discussed and use them to redesign existing programs safely for enhanced PL/SQL execution.

Session 4- 4:15-5:45pm
Effective Management of  PL/SQL Code
Steven Feuerstein, Quest Software
Although writing code is very important, it is just one aspect of building applications and fully leveraging PL/SQL. As your code volume increases and as Oracle offers more and more options for configuring PL/SQL, it becomes more important to take full advantage of advanced PL/SQL compiler features, data dictionary views and so much more.

This presentation shows developers how to correctly apply the PL/SQL compiler optimizer, compile-time warnings and conditional compilation. It then reviews and shows how to “mine” the most important data dictionary views for PL/SQL developers, from such all-time favorites as ALL_SOURCE to the new PL/Scope ALL_IDENTIFIERS and on to ALL_PLSQL_OBJECT_SETTINGS. 


Track 1 Day 2

Session 5- 8:30-10:00am
Say Goodbye to Hard Coding
Steven Feuerstein, Quest Software

Everyone knows that hard-coding is a bad idea. Too many developers, however, only think in terms of literal values when they think of hard-coding. There are, unfortunately, many ways that hard-coding manifests itself in our programs. This webinar offers a comprehensive look at all the types of hard-coding that can appear in your programs, from literals to explicit declarations to exposed formulas, and offers specific techniques to get rid of the hard-coding. The result is code that is much easier to read and to maintain.

Session 7- 12:45-2:15pm
Programming with Collections
Steven Feuerstein, Quest Software

Collections (array-like structures in PL/SQL) are critical data structures that are used in some of the most important features of PL/SQL. Every PL/SQL developer should have a deep familiarity with collections and the wide range of features that Oracle has implemented for them over the years. This session introduces collections and quickly moves on to detailed explanations of collection methods, how to leverage string indexing in associative arrays, multi-level collections, set-level operations on nested tables and more.

Session 8- 2:30-3:30pm
Autonomous Transactions: Extending the Possibilities

Michael Rosenblum, Dulcian

This presentation discusses when, why, and how to use autonomous transactions in conjunction with other features, such as object collections, dynamic SQL, INSTEAD OF triggers, etc. Additional focus will be placed on critical issues such as resolving self-mutating tables, preventing deadlocks, and understanding read/write-consistency and its corresponding side-effects. Real-life examples will be included to help attendees avoid hidden traps on the way to building systems better, faster, and cheaper.


Return to Top


Track 2 Day 1

Session 1- 10:15-11:45
How to Write SQL Injection Proof PL/SQL

Bryn Llewellyn, Oracle Corporation

Googling “SQL injection” gets about  3 million hits. The topic excites interest and superstitious fear. This presentation demystifies the topic and explains a straightforward approach to writing database PL/SQL programs that provably guarantees their immunity to SQL injection.

Of course, one cannot avoid what one cannot define ¬ and so we start with a definition of SQL injection. This, in turn, leads to the understanding that it is possible only when a PL/SQL subprogram executes a SQL statement whose text it has created at run time. Clearly, then, the best way to avoid SQL injection is to execute only SQL statements whose text is fixed when the PL/SQL that executes it is compiled.

Much of the presentation deals, therefore, with requirements scenarios that seem to require the run-time creation of SQL statements. However, such requirements scenarios are very much fewer than many programmers think; many can be implemented satisfactorily using compile-time-fixed SQL statement text. Several such scenarios are illustrated.

The rest of the presentation deals with meeting the relatively rare scenarios that non-negotiably require run-time-created SQL statement text. It explains, and insists on, rules which guarantee proof against injection in this regime. These rules are surprisingly easy to follow; and, as a bonus, they insure semantic correctness in edge cases that programmers often overlook.

Session 2- 12:00-1:30pm
Large Issues with Large Objects
Michael Rosenblum
& Paul Dorsey, PhD., Dulcian

CLOBs/BLOBs/BFILEs (commonly called "large objects") have been around for a long time, but only recently have they become critical tools for database systems because of increased multimedia content. Utilizing large database objects requires in-depth understanding of their proper handling, including such areas as managing access and storage, pointer operations, temporary vs. permanent, etc. The recent addition of SecureFiles made the number of options even more challenging. This presentation will explain when, why, and how to use large objects in real-world database systems.

Session 3- 2:30-4:00pm
Achieving Great Web Application Performance Using ONLY SQL and PL/SQL
Paul Dorsey, PhD., & Michael Rosenblum, Dulcian
The two main reasons for performance degradation in Web application architecture are:
1) Excessive round trips between the database and the application server
2) Large pages sent from the application server to the client
This presentation demonstrates a 100 percent "thick database" approach (virtually no code in the application server). Using this approach provided very good performance in the server as well a huge (10x) reduction in network traffic in comparison with standard Web applications. This architecture was developed to support the budget and finance system for the country of Ethiopia and has been productized as BRIM®-UI.

Session 4- 4:15-5:45pm
Thinking Clearly About Performance
Cary Millsap, Method R Corporation
Creating high-performance as an attribute of complex software is extremely difficult business for developers, technology administrators, architects, system analysts, and project managers. However, by understanding some fundamental principles, performance problem solving and prevention can be made far simpler and more reliable. This paper describes those principles, linking them together in a coherent journey covering the goals, the terms, the tools, and the decisions that you need to maximize your application's chance of having a long, productive, high-performance life. Examples in this paper touch upon Oracle experiences, but the scope of the paper is not restricted to Oracle products.


Return to Top


Track 2 Day 2

Session 5- 8:30-10:00am
Dynamic SQL in PL/SQL

Paul Dorsey, PhD., & Michael Rosenblum, Dulcian

Complexity and instability of contemporary business rules makes hard-coded solutions mostly impossible tasks. This presentation will provide a starting point by explaining when, why, and how to use dynamic SQL in real-world situations, including some less obvious issues including: defining required privileges, preventing code injections, targeting performance tuning efforts, understanding resource utilization, handling object dependencies, etc.

Session 7- 12:45-2:15pm
Doing SQL from PL/SQL: Best and Worst Practices Part 1

Bryn Llewellyn, Oracle Corporation
The PL/SQL developer has many constructs for executing SQL statements, and the space of possibilities has several dimensions: embedded SQL versus native dynamic SQL versus the DBMS_Sql API; bulk versus non-bulk; implicit cursor versus parameterized explicit cursor versus ref cursor; and so on. Deciding which to use might seem daunting. Moreover, as new variants have been introduced, older ones sometimes have ceased to be the optimal choice. Oracle Database 11g has kept up the tradition by bringing some improvements in the area of dynamic SQL.

This session examines and categorizes the use cases for doing SQL from PL/SQL, takes the Oracle Database 11g viewpoint, and explains the optimal approach for the task at hand.

Session 8- 2:30-3:30pm
Doing SQL from PL/SQL: Best and Worst Practices Part 2

Bryn Llewellyn, Oracle Corporation

The PL/SQL developer has many constructs for executing SQL statements, and the space of possibilities has several dimensions: embedded SQL versus native dynamic SQL versus the DBMS_Sql API; bulk versus non-bulk; implicit cursor versus parameterized explicit cursor versus ref cursor; and so on. Deciding which to use might seem daunting. Moreover, as new variants have been introduced, older ones sometimes have ceased to be the optimal choice. Oracle Database 11g has kept up the tradition by bringing some improvements in the area of dynamic SQL.

This session examines and categorizes the use cases for doing SQL from PL/SQL, takes the Oracle Database 11g viewpoint, and explains the optimal approach for the task at hand.

Return to Top

 

 
An ODTUG Seriously Practical Conference | 910.452.7444 | www.odtug.com