Disclaimer: Authors have full rights over their works. Reproduction of any part of the content is prohibited without prior authorization.
SUMMARY
Items Found: 202
- 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