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 Formatt...
对于初学ORACLE来说,这的确是本很不错的书。 入门比较简单,从最基本的讲起,关键此书,不像图灵的那些讲很多,似乎看起来很简单,但真正动手的时候却发现困难重重。 书中的练习是值得好好做的。从最基本的东西开始练习,慢慢明白其中的奥妙。 一本不可多得的ORACLE的入门级图...
评分对于初学ORACLE来说,这的确是本很不错的书。 入门比较简单,从最基本的讲起,关键此书,不像图灵的那些讲很多,似乎看起来很简单,但真正动手的时候却发现困难重重。 书中的练习是值得好好做的。从最基本的东西开始练习,慢慢明白其中的奥妙。 一本不可多得的ORACLE的入门级图...
评分对于初学ORACLE来说,这的确是本很不错的书。 入门比较简单,从最基本的讲起,关键此书,不像图灵的那些讲很多,似乎看起来很简单,但真正动手的时候却发现困难重重。 书中的练习是值得好好做的。从最基本的东西开始练习,慢慢明白其中的奥妙。 一本不可多得的ORACLE的入门级图...
评分对于初学ORACLE来说,这的确是本很不错的书。 入门比较简单,从最基本的讲起,关键此书,不像图灵的那些讲很多,似乎看起来很简单,但真正动手的时候却发现困难重重。 书中的练习是值得好好做的。从最基本的东西开始练习,慢慢明白其中的奥妙。 一本不可多得的ORACLE的入门级图...
评分对于初学ORACLE来说,这的确是本很不错的书。 入门比较简单,从最基本的讲起,关键此书,不像图灵的那些讲很多,似乎看起来很简单,但真正动手的时候却发现困难重重。 书中的练习是值得好好做的。从最基本的东西开始练习,慢慢明白其中的奥妙。 一本不可多得的ORACLE的入门级图...
当我刚开始接触 PL/SQL 的时候,确实感到有些无从下手,网上的零散信息太多,而且很多都比较陈旧。幸好我找到了这本《Oracle PL/SQL by Example (4th Edition)》。这本书简直就像一本“万能手册”,我遇到的绝大多数 PL/SQL 相关的问题,都能在这本书里找到答案,而且答案往往是经过深思熟虑、非常完善的。我印象特别深刻的是书中关于错误处理和调试的部分,作者讲解了如何使用 `EXCEPTION` 块来捕获各种类型的错误,并提供了非常有用的日志记录策略,这极大地提高了我在生产环境中排查问题的效率。此外,书中关于性能优化的章节也让我受益匪浅。我之前写的很多存储过程都存在性能瓶颈,但通过学习书中的关于SQL优化、索引使用以及如何避免不必要的上下文切换等技巧,我能够显著改善我编写的程序的运行速度。这本书的内容非常丰富,涵盖了从基础到高级的方方面面,并且每一章的深度都足够,不会让人感觉蜻蜓点水。我还会时不时地翻阅这本书,因为它提供了我持续学习和进步所需的知识和灵感。
评分我最近对 Oracle 数据库的 PL/SQL 编程产生了浓厚的兴趣,于是我花了些时间搜寻相关的书籍,最终选择了这本《Oracle PL/SQL by Example (4th Edition)》。我之所以选择这本书,是因为它强调“通过示例学习”,这正是我喜欢的学习方式。这本书的作者非常擅长将复杂的 PL/SQL 概念转化为易于理解的实际代码示例,并且这些示例都贴近实际的开发场景。例如,书中关于使用函数和过程来封装业务逻辑的部分,提供了一系列清晰的例子,展示了如何创建可重用的代码单元,这大大提高了我的开发效率。此外,书中还深入探讨了 PL/SQL 中的一些高级主题,如动态 SQL、上下文管理以及与数据库其他特性的集成,这些内容对于我这样的初学者来说,是非常宝贵的知识财富。总的来说,这本书的结构非常清晰,内容循序渐进,而且每一个例子都经过精心设计,能够有效地帮助读者掌握 PL/SQL 的核心概念和实际应用。我非常推荐这本书给任何想要系统学习 PL/SQL 的人。
评分对于我这样一名资深的数据库开发人员来说,学习新的技术或者深入掌握一门语言,最看重的就是内容的“含金量”以及是否能够真正解决实际工作中的痛点。这本书在这两方面都做得非常出色。作者在讲解 PL/SQL 的过程中,没有回避一些“疑难杂症”,反而将它们作为重点来阐述,比如如何处理大数据量、如何设计可扩展的存储过程、如何进行版本控制和单元测试等。我特别欣赏书中对 PL/SQL 架构设计原则的讨论,这让我能够从更高的层面去思考如何构建健壮、可维护的数据库应用程序。书中提到的“编写可读性强的 PL/SQL 代码”的原则,比如使用清晰的变量命名、编写注释以及合理地组织代码块,对我来说是极大的启发。在阅读这本书的过程中,我感觉自己不仅仅是在学习 PL/SQL 的语法,更是在学习一种“工程化”的开发思维。这本书不仅仅适合于新手入门,对于有经验的开发者来说,它也提供了很多可以学习和借鉴的高级技巧和最佳实践。
评分这本书绝对是我职业生涯中一个非常有价值的投资。作为一名已经从事 Oracle 开发一段时间的工程师,我一直觉得自己在 PL/SQL 的某些方面不够精通,尤其是涉及到一些更高级的特性和优化技巧。当我拿到这本《Oracle PL/SQL by Example (4th Edition)》时,我抱着试一试的心态开始阅读,结果被它的深度和实用性深深吸引。书中的每一个例子都设计得非常巧妙,不仅仅是简单的代码堆砌,而是真正地展示了如何解决实际工作中遇到的复杂问题。作者在讲解每一个概念时,都非常注重循序渐进,从最基础的语法一直深入到高级的性能调优和异常处理。我尤其喜欢书中关于游标、集合、自治事务以及如何编写可重用代码块的部分,这些内容让我对 PL/SQL 的理解提升了一个档次,也让我写出的代码更加健壮和高效。此外,书中还提供了大量的练习题和挑战,这对我巩固所学知识起到了至关重要的作用。我会在遇到问题时,翻阅这本书,通常都能找到非常接近的解决方案,或者得到启发。我强烈推荐这本书给任何想要在 Oracle PL/SQL 开发领域有所建树的开发者,无论是初学者还是有一定经验的工程师,都能从中获益匪浅。
评分这本书是我最近购买的一本技术书籍,它的装帧质量和印刷都相当不错,拿在手里很有质感,这对我来说是很重要的第一印象。这本书的结构安排非常合理,每一章都围绕着一个核心的 PL/SQL 概念展开,并且通过大量的、清晰的代码示例来阐释。我个人比较喜欢这种“以例证法”的学习方式,因为我发现自己更容易通过实际的代码来理解抽象的概念。比如,在讲解如何使用集合类型(如 VARRAY 和嵌套表)时,书中给出了非常生动的场景,展示了它们在处理批量数据时的优势,这让我彻底理解了它们的应用价值,而不仅仅是停留在理论层面。另外,作者在介绍一些复杂的 PL/SQL 特性时,比如记录类型、对象类型以及如何与 Java、XML 等外部集成,都做得非常细致,并且提供了可以实际运行的代码片段,这一点对于我这样的实践型学习者来说是无价的。这本书不仅仅是讲解语法,更重要的是教会我如何写出“好”的 PL/SQL 代码,如何考虑可维护性、可读性和性能。它让我看到了 PL/SQL 更多的可能性,也激发了我对这个领域更深入的探索欲。
评分不适合beginner
评分不适合beginner
评分不适合beginner
评分不适合beginner
评分不适合beginner
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2026 qciss.net All Rights Reserved. 小哈图书下载中心 版权所有