万本电子书0元读

万本电子书0元读

顶部广告

Oracle Advanced PL/SQL Developer Professional Guide电子书

售       价:¥

5人正在读 | 0人评论 9.8

作       者:Saurabh Gupta

出  版  社:Packt Publishing

出版时间:2012-05-16

字       数:350.7万

所属分类: 进口书 > 外文原版书 > 电脑/网络

温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印

为你推荐

  • 读书简介
  • 目录
  • 累计评论(0条)
  • 读书简介
  • 目录
  • 累计评论(0条)
This book is packed with real world examples that cover all the advanced features of PL/SQL. In turn, each major certification topic is covered in a separate chapter that makes understanding concepts easier. At the end of each chapter, you will find plenty of practice questions to strengthen and test your learning.If 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.
目录展开

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 Redefinition 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

累计评论(0条) 0个书友正在讨论这本书 发表评论

发表评论

发表评论,分享你的想法吧!

买过这本书的人还买过

读了这本书的人还在读

回顶部