1
<Insert Picture Here>
PL/SQL Development and Unit Testing with Oracle SQL Developer 3.0
Sue Harper Senior Principal Product Manager
The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracles products remains at the sole discretion of Oracle.
Agenda
SQL Developer 2.1 New Features SQL Developer 3.0 New Features Working with PL/SQL Remote Debugging Unit Testing Tuning Finding More Information
SQL Developer Features
Database connections Browse, query, update objects SQL Worksheet Query Builder Data import and export Object export PL/SQL Database and User defined reports User defined extensions Third-party databases Migrations Oracle APEX integration TimesTen integration Files and source code control
5
SQL Developer 2.1 New Features
PL/SQL Unit Testing Data Modeler Viewer Migration support for IBM DB2 UDB and Teradata Updated Data Grids
Manage columns, filter on data
New SQL Worksheet
Dockable dbms_output, multiple worksheets
Increased Connections navigator support for
Jobs, Editions (for Database 11g Release 2), XML DB Repository
Updated display editors
PL/SQL edit mode, subpartitions
Version Control support for Serena Dimensions, Perforce Updated filtering mechanism
Schema level, generated objects
Oracle SQL Developer 3.0 New Features
Production March 2011 DBMS Scheduler Query Builder Database migration Integrated spatial support PDF file support DBA Navigator Schema browser Extended Tuning Support Extended Unit Testing PL/SQL updates Import and Export updates Integrated Data Miner support
Working with PL/SQL
Creating and Editing PL/SQL
Code editor
Syntax highlighting Code formatter Code insight (auto complete) Code folding Query Builder
Code snippets
Drag and drop code snippets Add and customize snippets
Code templates
Preparing Code Skeletons with Dialogs
Use dialog to create
Procedures & Functions Triggers Package spec & body
Create Trigger
Table View Schema Database
10
Compiling and Running PL/SQL
Compiling
Inline error reporting
Run procedures, functions, and packages
Use DBMS_OUTPUT Function return values OUT parameters
Run PL/SQL dialog
Specifies run targets Shows parameter detail Generates editable PL/SQL block For parameter values For output parameters Works with records
11
Debugging PL/SQL
Set breakpoints
Configure conditions
Compile for Debug Control program execution (Step into, over) Run to Cursor Inspect and modify variables Review
Smart data Data
Watches expressions View debug log
12
Remote Debugging
Problem: Test a procedure being executed in a separate application In SQL Developer
Select Remote Debug Set up remote debug detail; machine, port Browse to procedure Set a breakpoint
In remote session
execute DBMS_DEBUG_JDWP.CONNECT_TCP (127.0.0.1, 4000) Execute procedure
In SQL Developer
Debug as normal
Use the environment variable SET ORA_DEBUG_JDWP=host=127.0.0.1;port=4000
13
Unit Testing
14
Unit Testing Overview
Tests Suites Reports Library Static and dynamic lookups Multi user repository based Code coverage Command line use Target any database
15
Unit Testing - Tests
Input/Return
Static or Dynamic Values
Startups/TearDown
Table Copy/Restore Row Copy/Restore Custom
Code coverage Success or failure testing Validation
Custom
16
Unit Testing - Suites
Startups/TearDown
Table Copy/Restore Row Copy/Restore Custom
Code Coverage Tests are run sequentially Startup and teardowns for tests can be turned off
17
Unit Testing - Library
Stores reusable items
Dynamic Values Startups Teardowns Validations
Referenced or copied to local tests
18
Unit Testing - Reports
Includes Standard reports
Suites Tests Code Coverage
Reports against the repository Users can query the repository directly
19
Unit Testing Multi User
Use database users Control
admin vs. user
Managed with roles
20
Unit Testing Running Suites/Tests
Inside SQL Developer simply change the Combo List Command line by passing arguments Results are stored in the repository
21
Tuning
22
Refactor, Review, Search, Tune and Monitor
SQL Developer provides a PL/SQL related utilities PL/SQL Hierarchical Profiler Extended Search using PL/SQL SQL Monitor SQL Developer PL/SQL Reports General refactoring APEX refactoring
23
Hierarchical Profiler
24
Searching
Find (and replace) in all editors Find DB Objects
Across schemas Navigate to object
Extended search Across schemas
For object types For usages PLScope support
(Oracle Database 11g)
25
Real-Time SQL Monitoring
Real time view of SQL Use /*+MONITOR*/ Drill to view details Visual indicators for current step Queries over 5 seconds monitored DBMS_SQLTUNE.REPORT_SQL_MONITOR
26
SQL Monitor and PL/SQL Reports
Shipped PL/SQL Reports
SQL Monitor Search Source Code Program Unit Arguments
User Defined Reports
Using plsql-dbms_output Formatting code
27
Refactoring
Extract a procedure Surround blocks with
For While Begin block
Variable renames Extract anonymous PL/SQL blocks from APEX apps
28
Integrating with Oracle APEX
Providing integration points to Oracle APEX Remote debugging Tuning SQL Refactoring PL/SQL code
29
Finding More Detail
30
Finding More Detail
www.oracle.com/technology/products/database/sql_developer
SQL Developer on OTN
White papers,Oracle by Example (OBE) and online demos Team Blogs: Blogs, Magazine Articles & Podcasts www.oracle.com/technology/products/database/sql_developer
SQL Developer Exchange
Share reports, snippets, code, and add feature requests http://sqldeveloper.oracle.com
Forums
SQL Developer forums.oracle.com/forums/forum.jspa?forumID=260
31
Summary
PL/SQL
Creating, editing, compiling and debugging
Unit Testing
Creating, Running, Reporting Batch processing
Creating SQL Developer extensions Real-Time SQL Monitoring
Watch SQL as it runs
Refactoring
Convert APEX anonymous blocks into a Package
32
33
34