In the sale you will find especially cheap items or current promotions.
Want to part with books, CDs, movies or games? Sell everything on momox.com
This integrated learning solution teaches all the Oracle PL/SQL skills you need, hands-on, through real-world labs, extensive examples, exercises, and projects! Completely updated for Oracle 11g, Oracle PL/SQL by Example, Fourth Edition covers all the fundamentals, from PL/SQL syntax and program control through packages and Oracle 11g's significantly improved triggers.
One step at a time, you'll walk through every key task, discovering the most important PL/SQL programming techniques on your own. Building on your hands-on learning, the authors share solutions that offer deeper insights and proven best practices. End-of-chapter projects bring together all the techniques you've learned, strengthening your understanding through real-world practice.
This book's approach fully reflects the authors' award-winning experience teaching PL/SQL programming to professionals at Columbia University. New database developers and DBAs can use its step-by-step instructions to get productive fast; experienced PL/SQL programmers can use this book as a practical solutions reference. Coverage includes
. Mastering basic PL/SQL concepts and general programming language fundamentals, and understanding SQL's role in
PL/SQL
. Using conditional and iterative program control techniques, including the new CONTINUE and CONTINUE WHEN statements
. Efficiently handling errors and exceptions
. Working with cursors and triggers, including Oracle 11g's powerful new compound triggers
. Using stored procedures, functions, and packages to write modular code that other programs can execute
. Working with collections, object-relational features, native dynamic SQL, bulk SQL, and other advanced PL/SQL capabilities
. Handy reference appendices: PL/SQL formatting guide, sample database schema, ANSI SQL standards reference, and
more
Benjamin Rosenzweig is a Software Development Manager at Misys. Previously he was a Principal Consultant at Oracle. His experience ranges from creating an electronic Tibetan-English Dictionary in Kathmandu, Nepal, to supporting presentation centers at Goldman Sachs and managing trading systems at TIAA-CREF. As an instructor at Columbia University's Computer Technology and Application Program, he was awarded the Outstanding Teaching Award. Rosenzweig wrote and presented Oracle Forms Developer: The Complete Video Course, and coauthored Oracle Web Application Programming for PL/SQL Developers.
Elena Silvestrova Rakhimov is Senior Developer and Team Lead at Alea Software. She has more than fifteen years of experience in database development in a wide spectrum of enterprise and business environments, ranging from non-profit organizations to Wall Street. She has taught database programming at Columbia University.
Contents
Acknowledgments xiv
About the Authors xv
Introduction xvii
CHAPTER 1 PL/SQL Concepts 1
LAB 1.1 PL/SQL in Client/Server Architecture 2
1.1.1 Use PL/SQL Anonymous Blocks 8
1.1.2 Understand How PL/SQL Gets Executed 10
LAB 1.2 PL/SQL in SQL*Plus 12
1.2.1 Use Substitution Variables 16
1.2.2 Use the DBMS_OUTPUT.PUT_LINE Statement 17
Chapter 1 Try It Yourself 19
CHAPTER 2 General Programming Language
Fundamentals 21
LAB 2.1 PL/SQL Programming Fundamentals 22
2.1.1 Make Use of PL/SQL Language Components 23
2.1.2 Make Use of PL/SQL Variables 24
2.1.3 Handle PL/SQL Reserved Words 26
2.1.4 Make Use of Identifiers in PL/SQL 27
2.1.5 Make Use of Anchored Datatypes 28
2.1.6 Declare and Initialize Variables 31
2.1.7 Understand the Scope of a Block, Nested Blocks, and Labels 34
Chapter 2 Try It Yourself 37
CHAPTER 3 SQL in PL/SQL 39
LAB 3.1 Making Use of DML in PL/SQL 40
3.1.1 Use the Select INTO Syntax for Variable Initialization 41
3.1.2 Use DML in a PL/SQL Block 42
3.1.3 Make Use of a Sequence in a PL/SQL Block 44
LAB 3.2 Making Use of SAVEPOINT 45
3.2.1 Make Use of COMMIT, ROLLBACK, and SAVEPOINT in a PL/SQL Block 48
Chapter 3 Try It Yourself 51
CHAPTER 4 Conditional Control: IF Statements 53
LAB 4.1 IF Statements 54
4.1.1 Use the IF-THEN Statement 58
4.1.2 Use the IF-THEN-ELSE Statement 62
LAB 4.2 ELSIF Statements 65
4.2.1 Use the ELSIF Statement 69
LAB 4.3 Nested IF Statements 74
4.3.1 Use Nested IF Statements 76
Chapter 4 Try It Yourself 80
CHAPTER 5 Conditional Control: CASE Statements 81
LAB 5.1 CASE Statements 82
5.1.1 Use the CASE Statement 89
5.1.2 Use the Searched CASE Statement 91
LAB 5.2 CASE Expressions 96
5.2.1 Use the CASE Expression 100
LAB 5.3 NULLIF and COALESCE Functions 103
5.3.1 The NULLIF Function 107
5.3.2 Use the COALESCE Function 109
Chapter 5 Try It Yourself 112
CHAPTER 6 Iterative Control: Part I 113
LAB 6.1 Simple Loops 114
6.1.1 Use Simple Loops with EXIT Conditions 118
6.1.2 Use Simple Loops with EXIT WHEN Conditions 120
LAB 6.2 WHILE Loops 124
6.2.1 Use WHILE Loops 128
LAB 6.3 Numeric FOR Loops 132
6.3.1 Use Numeric FOR Loops with the IN Option 137
6.3.2 Use Numeric FOR Loops with the REVERSE Option 139
Chapter 6 Try It Yourself 142
CHAPTER 7 Iterative Control: Part II 143
LAB 7.1 The CONTINUE Statement 144
7.1.1 Use the CONTINUE Statement 146
7.1.2 Use the CONTINUE WHEN Condition 152
LAB 7.2 Nested Loops 154
7.2.1 Use Nested Loops 157
Chapter 7 Try It Yourself 161
CHAPTER 8 Error Handling and Built-in Exceptions 163
LAB 8.1 Handling Errors 164
8.1.1 Understand the Importance of Error Handling 167
LAB 8.2 Built-in Exceptions 169
8.2.1 Use Built-in Exceptions 174
Chapter 8 Try It Yourself 178
CHAPTER 9 Exceptions 179
LAB 9.1 Exception Scope 180
9.1.1 Understand the Scope of an Exception 183
LAB 9.2 User-Defined Exceptions 188
9.2.1 Use User-Defined Exceptions 193
LAB 9.3 Exception Propagation 197
9.3.1 Understand How Exceptions Propagate 203
9.3.2 Reraise Exceptions 206
Chapter 9 Try It Yourself 209
CHAPTER 10 Exceptions: Advanced Concepts 211
LAB 10.1 RAISE_APPLICATION_ERROR 212
10.1.1 Use RAISE_APPLICATION_ERROR 215
LAB 10.2 EXCEPTION_INIT Pragma 217
10.2.1 USE the EXCEPTION_INIT Pragma 219
LAB 10.3 SQLCODE and SQLERRM 222
10.3.1 Use SQLCODE and SQLERRM 225
Chapter 10 Try It Yourself 227
CHAPTER 11 Introduction to Cursors 229
LAB 11.1 Cursor Manipulation 230
11.1.1 Make Use of Record Types 234
11.1.2 Process an Explicit Cursor 235
11.1.3 Make Use of Cursor Attributes 240
11.1.4 Put It All Together 242
LAB 11.2 Using Cursor FOR Loops and Nested Cursors 246
11.2.1 Use a Cursor FOR Loop 247
11.2.2 Process Nested Cursors 247
Chapter 11 Try It Yourself 252
CHAPTER 12 Advanced Cursors 253
LAB 12.1 Using Parameters with Cursors and Complex Nested Cursors 254
12.1.1 Use Parameters in a Cursor 255
12.1.2 Use Complex Nested Cursors 255
LAB 12.2 FOR UPDATE and WHERE CURRENT Cursors 258
12.2.1 For UPDATE and WHERE CURRENT Cursors 258
CHAPTER 13 Triggers 263
LAB 13.1 What Triggers Are 264
13.1.1 Understand What a Trigger Is 272
13.1.2 Use BEFORE and AFTER Triggers 274
LAB 13.2 Types of Triggers 277
13.2.1 Use Row and Statement Triggers 283
13.2.2 Use INSTEAD OF Triggers 285
Chaper 13 Try It Yourself 290
CHAPTER 14 Compound Triggers 291
LAB 14.1 Mutating Table Issues 292
14.1.1 Understand Mutating Tables 296
LAB 14.2 Compound Triggers 300
14.2.1 Understand Compound Triggers 306
Chapter 14 Try It Yourself 313
CHAPTER 15 Collections 315
LAB 15.1 PL/SQL Tables 316
15.1.1 Use Associative Arrays 326
15.1.2 Use Nested Tables 330
LAB 15.2 Varrays 334
15.2.1 Use Varrays 338
LAB 15.3 Multilevel Collections 342
15.3.1 Use Multilevel Collections 344
Chapter 15 Try It Yourself 348
CHAPTER 16 Records 349
LAB 16.1 Record Types 350
16.1.1 Use Table-Based and Cursor-Based Records 358
16.1.2 Use User-Defined Records 362
LAB 16.2 Nested Records 367
16.2.1 Use Nested Records 369
LAB 16.3 Collections of Records 373
16.3.1 Use Collections of Records 374
Chapter 16 Try It Yourself 378
CHAPTER 17 Native Dynamic SQL 379
LAB 17.1 EXECUTE IMMEDIATE Statements 380
17.1.1 Use the EXECUTE IMMEDIATE Statement 387
LAB 17.2 OPEN-FOR, FETCH, and CLOSE Statements 392
17.2.1 Use OPEN-FOR, FETCH, and CLOSE Statements 395
Chapter 17 Try It Yourself 401
CHAPTER 18 Bulk SQL 403
LAB 18.1 The FORALL Statement 404
18.1.1 Use the FORALL Statement 413
LAB 18.2 The BULK COLLECT Clause 422
18.2.1 Use the BULK COLLECT Statement 428
Chapter 18 Try It Yourself 437
CHAPTER 19 Procedures 439
LAB 19.1 Creating Procedures 441
19.1.1 Create Procedures 441
19.1.2 Query the Data Dictionary for Information on Procedures 443
LAB 19.2 Passing Parameters into and out of Procedures 444
19.2.1 Use IN and OUT Parameters with Procedures 445
Chapter 19 Try It Yourself 447
Part 1 447
Part 2 447
CHAPTER 20 Functions 449
LAB 20.1 Creating and Using Functions 450
20.1.1 Create Stored Functions 451
20.1.2 Make Use of Functions 452
20.1.3 Invoke Functions in SQL Statements 453
20.1.4 Write Complex Functions 454
Chapter 20 Try It Yourself 455
CHAPTER 21 Packages 457
LAB 21.1 The Benefits of Using Packages 458
21.1.1 Create Package Specifications 460
21.1.2 Create Package Bodies 462
21.1.3 Call Stored Packages 464
21.1.4 Create Private Objects 465
21.1.5 Create Package Variables and Cursors 469
LAB 21.2 Cursor Variables 471
21.2.1 Make Use of Cursor Variables 475
LAB 21.3 Extending the Package 480
21.3.1 Extend the Package 480
Chapter 21 Try It Yourself 493
CHAPTER 22 Stored Code 495
LAB 22.1 Gathering Information About Stored Code 496
22.1.1 Get Stored Code Information from the Data Dictionary 496
22.1.2 Enforce the Purity Level with the RESTRICT_REFERENCES Pragma 500
22.1.3 Overload Modules 506
Chapter 22 Try It Yourself 512
CHAPTER 23 Object Types in Oracle 513
LAB 23.1 Object Types 514
23.1.1 Use Object Types 522
23.1.2 Use Object Types with Collections 526
LAB 23.2 Object Type Methods 531
23.2.1 Use Object Type Methods 544
Chapter 23 Try It Yourself 554
CHAPTER 24 Oracle Supplied Packages 555
LAB 24.1 Making Use of Oracle Supplied Packages to Profile PL/SQL, Access Files, and Schedule Jobs 556
24.1.1 Access Files with UTL_FILE 563
24.1.2 Schedule Jobs with DBMS_JOB 563
24.1.3 Submit Jobs 564
LAB 24.2 Making Use of Oracle-Supplied Packages to Generate an Explain Plan and Create HTML Pages 568
24.2.1 Generate an Explain Plan with DBMS_XPLAN 572
LAB 24.3 Creating Web Pages with the Oracle Web Toolkit 578
24.3.1 Create an HTML Page with the Oracle Web Toolkit 594
APPENDIX A PL/SQL Formatting Guide 597
APPENDIX B Student Database Schema 601
APPENDIX C ANSI SQL Standards 607
APPENDIX D Answers to the Try It Yourself Sections 613
INDEX 705