
Oracle Advanced PL/SQL Developer Professional Guide
Description
Alles über E-Books | Antworten auf Fragen rund um E-Books, Kopierschutz und Dateiformate finden Sie in unserem Info- & Hilfebereich.
- Master the advanced features of PL/SQL to design and optimize code using real-time demonstrations
- Efficiently design PL/SQL code with cursor design and subtypes
Book DescriptionPL/SQL (Procedural Language/Structured Query Language) is Oracle Corporation's procedural extension language for SQL and the Oracle relational database. Server-side PL/SQL is stored and compiled in the Oracle Database and runs within the Oracle executable. With this guide Oracle developers can work towards accomplishing Oracle 11g Advanced PL/SQL Professional certification, which is the second milestone for developers working at the Associate level. The Oracle Advanced PL/SQL Developer Professional Guide helps you master advanced PL/SQL concepts. Besides the clear and precise explanation on advanced topics, it also contains example code and demonstrations, which gives a sense of application and usage to readers.The book gives a deep insight that will help transform readers from mid-level programmers to professional database developers. It aims to cover the advanced features of PL/SQL for designing and optimizing PL/SQL code.This book starts with an overview of PL/SQL as the programming database language and outlines the benefits and characteristics of the language. The book then covers the advanced features that include PL/SQL code writing using collections, tuning recommendations using result caching, implementing VPD to enforce row level security, and much more. Apart from programming, the book also dives deep into the usage of the development tool SQL Developer, employing best practices in database environments and safeguarding the vulnerable areas in PL/SQL code to avoid code injection.What you will learn - Get to grips with using Advanced Interface Methods
- Learn to implement VPD with Fine Grained Access Control
- Make use of Collections and learn data caching techniques in PL/SQL programs
- Protect PL/SQL code from injection attacks
- Learn to use Result caching to tune PL/SQL code
- Demonstrate tracing and profiling features in PL/SQL
- Get started with SecureFiles for advanced storage options
Who this book is forIf you are a PL/SQL developer looking for deeper insight and a move from mid-level programmer to professional database developer, then this is the best guide for you.This book is also an ideal guide for all the Associate level PL/SQL programmers who are preparing for the Professional 1Z0-146 certification.This book assumes you have prior knowledge of PL/SQL programming.
All prices
More details
Other editions
Additional editions

Person
Saurabh K. Gupta is a seasoned database technologist with extensive experience in designing high performance and highly available database applications. His technology focus has been centered around Oracle Database architecture, Oracle Cloud platform, Database In-Memory, Database Consolidation, Multitenant, Exadata, Big Data, and Hadoop. He has authored the first edition of this book. He is an active speaker at technical conferences from Oracle Technology Network, IOUG Collaborate'15, AIOUG Sangam, and Tech Days. Connect with him on his twitter handle (or SAURABHKG) or through his technical blog www.sbhoracle. wordpress.com, with comments, suggestions, and feedback regarding this book.
Content
- Intro
- Oracle Advanced PL/SQL Developer Professional Guide
- Table of Contents
- Oracle Advanced PL/SQL Developer Professional Guide
- Credits
- Foreword
- About the Author
- Acknowledgement
- About the Reviewers
- www.PacktPub.com
- Support files, eBooks, discount offers, and more
- Why Subscribe?
- Free Access for Packt account holders
- Instant Updates on New Packt Books
- Preface
- What this book covers
- What you need for this book
- Who this book is for
- Conventions
- Reader feedback
- Customer support
- Downloading the example code
- Errata
- Piracy
- Questions
- 1. Overview of PL/SQL Programming Concepts
- PL/SQL-the procedural aspect
- My first PL/SQL program
- PL/SQL development environments
- SQL Developer
- SQL Developer-the history
- Creating a connection
- SQL Worksheet
- Executing a SQL statement
- Calling a SQL script from SQL Developer
- Creating and executing an anonymous PL/SQL block
- Debugging the PL/SQL code
- Editing and saving the scripts
- SQL*Plus
- Executing a SQL statement in SQL*Plus
- Executing an anonymous PL/SQL block
- Procedures
- Executing a procedure
- Functions
- Function-execution methods
- Restrictions on calling functions from SQL expressions
- PL/SQL packages
- Cursors-an overview
- Cursor execution cycle
- Cursor attributes
- Cursor FOR loop
- Exception handling in PL/SQL
- System-defined exceptions
- User-defined exceptions
- The RAISE_APPLICATION_ERROR procedure
- Exception propagation
- Managing database dependencies
- Displaying the direct and indirect dependencies
- Dependency metadata
- Dependency issues and enhancements
- Reviewing Oracle-supplied packages
- Summary
- Practice exercise
- 2. Designing PL/SQL Code
- Understanding cursor structures
- Cursor execution cycle
- Cursor design considerations
- Cursor design-guidelines
- Cursor attributes
- Implicit cursors
- Explicit cursors
- Cursor variables
- Ref cursor types-strong and weak
- SYS_REFCURSOR
- Processing a cursor variable
- Cursor variables as arguments
- Cursor variables-restrictions
- Subtypes
- Subtype classification
- Oracle's predefined subtypes
- User-defined subtypes
- Type compatibility with subtypes
- Summary
- Practice exercise
- 3. Using Collections
- Collections-an overview
- Categorization
- Selecting an appropriate collection type
- Associative arrays
- Nested tables
- Nested table collection type as the database object
- DML operations on nested table columns
- Inserting a nested table instance
- Selecting a nested table column
- Updating the nested table instance
- A nested table collection type in PL/SQL
- Additional features of a nested table
- Varray
- Varray in PL/SQL
- Varray as a database collection type
- DML operations on varray type columns
- Inserting a varray collection type instance
- Selecting a varray column
- Updating the varray instance
- Collections-a comparative study
- Common characteristics of collection types
- Nested table versus associative arrays
- Nested table versus varrays
- PL/SQL collection methods
- EXISTS
- COUNT
- LIMIT
- FIRST and LAST
- PRIOR and NEXT
- EXTEND
- TRIM
- DELETE
- Manipulating collection elements
- Collection initialization
- Summary
- Practice exercise
- 4. Using Advanced Interface Methods
- Understanding external routines
- Architecture of external routines
- Oracle Net Configuration
- TNSNAMES.ora
- LISTENER.ora
- Oracle Net Configuration verification
- Benefits of external procedures
- Executing external C programs from PL/SQL
- Executing C program through external procedure-development steps
- Executing Java programs from PL/SQL
- Calling a Java class method from PL/SQL
- Uploading a Java class into the database-development steps
- The loadjava utility-an illustration
- Creating packages for Java class methods
- Summary
- Practice exercise
- 5. Implementing VPD with Fine Grained Access Control
- Fine Grained Access Control
- Overview
- Virtual Private Database-the alias
- How FGAC or VPD works?
- Salient features of VPD
- VPD implementation-outline and components
- Application context
- Policy function definition and implementation of row-level security
- Associating a policy using the DBMS_RLS package
- VPD implementation-demonstrations
- Assignment 1-implementing VPD using simple security policy
- Assignment 2-implementing VPD using an application context
- VPD policy metadata
- Policy utilities-refresh and drop
- Summary
- Practice exercise
- 6. Working with Large Objects
- Introduction to the LOB data types
- Internal LOB
- External LOB
- Understanding the LOB data types
- LOB value and LOB locators
- BLOB or CLOB!
- BFILE
- Temporary LOBs
- Creating LOB data types
- Directories
- Creating LOB data type columns in a table
- Managing LOB data types
- Managing internal LOBs
- Securing and managing BFILEs
- The DBMS_LOB package-overview
- Security model
- DBMS_LOB constants
- DBMS_LOB data types
- DBMS_LOB subprograms
- Rules and regulations
- Internal LOBs
- BFILEs
- Working with the CLOB, BLOB, and BFILE data types
- Initializing LOB data type columns
- Inserting data into a LOB column
- Populating a LOB data type using an external file
- Selecting LOB data
- Modifying the LOB data
- Delete LOB data
- Miscellaneous LOB notes
- LOB column states
- Locking a row containing LOB
- Opening and closing LOBs
- Accessing LOBs
- LOB restrictions
- Migrating from LONG to LOB
- Using temporary LOBs
- Temporary LOB operations
- Managing temporary LOBs
- Validating, creating, and freeing a temporary LOB
- Summary
- Practice exercise
- 7. Using SecureFile LOBs
- Introduction to SecureFiles
- SecureFile LOB-an overview
- Architectural enhancements in SecureFiles
- SecureFile LOB features
- Working with SecureFiles
- SecureFile metadata
- Enabling advanced features in SecureFiles
- Deduplication
- Compression
- Encryption
- Migration from BasicFiles to SecureFiles
- Online Reefinition method
- Summary
- Practice exercise
- 8. Compiling and Tuning to Improve Performance
- Native and interpreted compilation techniques
- Real native compilation
- Selecting the appropriate compilation mode
- When to choose interpreted compilation mode?
- When to choose native compilation mode?
- Setting the compilation mode
- Querying the compilation settings
- Compiling a program unit for a native or interpreted compilation
- Compiling the database for PL/SQL native compilation (NCOMP)
- Tuning PL/SQL code
- Comparing SQL and PL/SQL
- Avoiding implicit data type conversion
- Understanding the NOT NULL constraint
- Using the PLS_INTEGER data type for arithmetic operations
- Using a SIMPLE_INTEGER data type
- Modularizing the PL/SQL code
- Using bulk binding
- Using SAVE_EXCEPTIONS
- Rephrasing the conditional control statements
- Conditions with an OR logical operator
- Conditions with an AND logical operator
- Enabling intra unit inlining
- PLSQL_OPTIMIZE_LEVEL-the Oracle initialization parameter
- Case 1-PLSQL_OPTIMIZE_LEVEL = 0
- Case 2-PLSQL_OPTIMIZE_LEVEL = 1
- Case 3-PLSQL_OPTIMIZE_LEVEL = 2
- Case 4-PLSQL_OPTIMIZE_LEVEL = 3
- PRAGMA INLINE
- Summary
- Practice exercise
- 9. Caching to Improve Performance
- Introduction to result cache
- Server-side result cache
- SQL query result cache
- PL/SQL function result cache
- OCI client results cache
- Configuring the database for the server result cache
- The DBMS_RESULT_CACHE package
- Implementing the result cache in SQL
- Manual result cache
- Automatic result cache
- Result cache metadata
- Query result cache dependencies
- Cache memory statistics
- Invalidation of SQL result cache
- Displaying the result cache memory report
- Read consistency of the SQL result cache
- Limitation of SQL result cache
- Implementing result cache in PL/SQL
- The RESULT_CACHE clause
- Cross-session availability of cached results
- Invalidation of PL/SQL result cache
- Limitations of PL/SQL function result cache
- Argument and return type restrictions
- Function structural restrictions
- Summary
- Practice exercise
- 10. Analyzing PL/SQL Code
- Track coding information
- [DBA | ALL | USER]_ARGUMENTS
- [DBA | ALL | USER]_OBJECTS
- [DBA | ALL | USER]_SOURCE
- [DBA | ALL | USER]_PROCEDURES
- [DBA | ALL | USER]_DEPENDENCIES
- Using SQL Developer to find coding information
- The DBMS_DESCRIBE package
- DBMS_UTILITY.FORMAT_CALL_STACK
- Tracking propagating exceptions in PL/SQL code
- Determining identifier types and usages
- The PL/Scope tool
- The PL/Scope identifier collection
- The PL/Scope report
- Illustration
- Applications of the PL/Scope report
- The DBMS_METADATA package
- DBMS_METADATA data types and subprograms
- Parameter requirements
- The DBMS_METADATA transformation parameters and filters
- Working with DBMS_METADATA-illustrations
- Case 1-retrieve the metadata of a single object
- Case 2-retrieve the object dependencies on the F_GET_LOC function
- Case 3-retrieve system grants on the ORADEV schema
- Case 4-retrieve objects of function type in the ORADEV schema
- Summary
- Practice exercise
- 11. Profiling and Tracing PL/SQL Code
- Tracing the PL/SQL programs
- The DBMS_TRACE package
- Installing DBMS_TRACE
- DBMS_TRACE subprograms
- The PLSQL_DEBUG parameter and the DEBUG option
- Viewing the PL/SQL trace information
- Demonstrating the PL/SQL tracing
- Profiling the PL/SQL programs
- Oracle hierarchical profiler-the DBMS_HPROF package
- View profiler information
- Demonstrating the profiling of a PL/SQL program
- The plshprof utility
- Sample reports
- Summary
- Practice exercise
- 12. Safeguarding PL/SQL Code against SQL Injection Attacks
- SQL injection-an introduction
- SQL injection-an overview
- Types of SQL injection attacks
- Preventing SQL injection attacks
- Immunizing SQL injection attacks
- Reducing the attack's surface
- Controlling user privileges
- Invoker's and definer's rights
- Avoiding dynamic SQL
- Bind arguments
- Sanitizing inputs using DBMS_ASSERT
- The DBMS_ASSERT package
- Identifier formatting and verification process
- DBMS_ASSERT-usage guidelines
- DBMS_ASSERT-limitations
- Testing the code for SQL injection flaws
- Test strategy
- Reviewing the code
- Static code analysis
- Fuzz tools
- Generating test cases
- Summary
- Practice exercise
- A. Answers to Practice Questions
- Chapter 1, Overview of PL/SQL Programming Concepts
- Chapter 2, Designing PL/SQL Code
- Chapter 3, Using Collections
- Chapter 4, Using Advanced Interface Methods
- Chapter 5, Implementing VPD with Fine Grained Access Control
- Chapter 6, Working with Large Objects
- Chapter 7, Using SecureFile LOBs
- Chapter 8, Compiling and Tuning to Improve Performance
- Chapter 9, Caching to Improve Performance
- Chapter 10, Analyzing PL/SQL Code
- Chapter 11, Profiling and Tracing PL/SQL Code
- Chapter 12, Safeguarding PL/SQL Code against SQL Injection Attacks
- Index
System requirements
File format: ePUB
Copy protection: Adobe-DRM (Digital Rights Management)
System requirements:
- Computer (Windows; MacOS X; Linux): Install the free reader Adobe Digital Editions prior to download (see eBook Help).
- Tablet/smartphone (Android; iOS): Install the free app Adobe Digital Editions or the app PocketBook before downloading (see eBook Help).
- E-reader: Bookeen, Kobo, Pocketbook, Sony, Tolino and many more (not Kindle).
The file format ePub works well for novels and non-fiction books – i.e., „flowing” text without complex layout. On an e-reader or smartphone, line and page breaks automatically adjust to fit the small displays.
This eBook uses Adobe-DRM, a „hard” copy protection. If the necessary requirements are not met, unfortunately you will not be able to open the eBook. You will therefore need to prepare your reading hardware before downloading.
Please note: We strongly recommend that you authorise using your personal Adobe ID after installation of any reading software.
For more information, see our ebook Help page.
File format: PDF
Copy-Protection: Adobe-DRM (Digital Rights Management)
System requirements:
- Computer (Windows; MacOS X; Linux): Install the free reader Adobe Digital Editions prior to download (see eBook Help).
- Tablet/smartphone (Android; iOS): Install the free app Adobe Digital Editions or the app PocketBook before downloading (see eBook Help).
- E-reader: Bookeen, Kobo, Pocketbook, Sony, Tolino and many more (only limited: Kindle).
The file format PDF always displays a book page identically on any hardware. This makes PDF suitable for complex layouts such as those used in textbooks and reference books (images, tables, columns, footnotes). Unfortunately, on the small screens of e-readers or smartphones, PDFs are rather annoying, requiring too much scrolling.
This eBook uses Adobe-DRM, a „hard” copy protection. If the necessary requirements are not met, unfortunately you will not be able to open the eBook. You will therefore need to prepare your reading hardware before downloading.
Please note: We strongly recommend that you authorise using your personal Adobe ID after installation of any reading software.
For more information, see our eBook Help page.