Book description
As legacy and other critical systems continue to migrate online, the need for continuous operation is imperative. Code has to handle data issues as well as hard external problems today, including outages of networks, storage systems, power, and ancillary systems. This practical guide provides system administrators, DevSecOps engineers, and cloud architects with a concise yet comprehensive overview on how to use PL/SQL to develop resilient database solutions.
Integration specialist Stephen B Morris helps you understand the language, build a PL/SQL toolkit, and collect a suite of reusable components and patterns. You'll dive into the benefits of synthesizing the toolkit with a requirements-driven, feature-oriented approach and learn how to produce resilient solutions by synthesizing the PL/SQL toolkit in conjunction with a scale of resilience.
- Build solid PL/SQL solutions while avoiding common PL/SQL antipatterns
- Learn why embedding complex business logic in SQL is often a brittle proposition
- Learn how to recognize and improve weak PL/SQL code
- Verify PL/SQL code by running data-driven, in-database tests
- Understand the safe operation, maintenance, and modification of complex PL/SQL systems
- Learn the benefits of thinking about features rather than just use cases
- Define good requirements for PL/SQL and hybrid solutions involving PL/SQL and high level languages
Publisher resources
Table of contents
-
Preface
- Who This Book Is For
- Requirements Orientation
- Toward Strategic Coding
- Resilient Software Is a Journey, Not a Destination
- A Scale of Resilience
- Resilient Solutions and Disaster Recovery
- A Diagram-Driven Narrative
- Conventions Used in This Book
- Using Code Examples
- Legal Notices
- O’Reilly Online Learning
- How to Contact Us
- Acknowledgments
- I. Creating a PL/SQL Toolbox
-
1. Resilient Software and PL/SQL
- Resilient Software
- Examples of Resilient Systems
- A Cautionary Tale
- Gaining a Basic Understanding of PL/SQL
- Understanding the Need for a PL/SQL Learning and Development Environment
-
The Scale of Resilience
- Capture All Errors and Exceptions: Score = 0
- Recoverability: Score = 2
- Observability: Score = 0
- Modifiability: Score = 5
- Modularity: Score = 2
- Simplicity: Score = 5
- Coding Conventions: Score = 5
- Reusability: Score = 2
- Repeatable Testing: Score = 2
- Avoiding Common Antipatterns: Score = 0
- Schema Evolution: Score = 0
- Summary
-
2. Installation of a Containerized Oracle Database Instance and SQL Developer
- A Virtualized Oracle Database Installation
- Getting Started with Docker
- Configuring Your Oracle Database
- Updating the User Password
- Getting Started with SQL Developer
- Recap of the Basic Docker Workflow
- Running SQL Developer
- A Simple Schema
- Running Some PL/SQL Code
- Three Docker Gotchas
- An Alternative to the Command-Line Use of Docker
- Another Alternative to the Command-Line Use of Docker
- Summary
- 3. Taking SQL Developer for a Drive
-
4. Applying the Scale of Resilience
to the PL/SQL Code
- Scale of Resilience Requirement 1: Capture All Errors and Exceptions
- Scale of Resilience Requirement 2: Recoverability
- Scale of Resilience Requirement 3: Observability
- Scale of Resilience Requirement 4: Modifiability
- Scale of Resilience Requirement 5: Modularity
- Scale of Resilience Requirement 6: Simplicity
- Scale of Resilience Requirement 7: Coding Conventions
- Scale of Resilience Requirement 8: Reusability
- Scale of Resilience Requirement 9: Repeatable Testing
- Running a utPLSQL Unit Test
- Scale of Resilience Requirement 10: Avoiding Common Antipatterns
- Scale of Resilience Requirement 11: Schema Evolution
- Scale of Resilience Change Summary
- Summary
- II. Feature-Driven Development
- 5. Calling PL/SQL
- 6. Introducing Feature-Driven PL/SQL Development
- III. Synthesis of the PL/SQL Toolbox and Feature-Driven Development
-
7. A Process-Centric, Feature-Based
Mini Project
- Requirement 1: Define the Requirements
- Requirement 2: Build a Basic Invoice Outline
- Requirement 3: Create a Schema
- Requirement 4: Test the Schema
- Requirement 5: Feature Description
- Requirement 6: The PL/SQL Toolbox Elements Needed to Build a Solution
- Requirement 7: Tests
- Requirement 8: Building a Resilient PL/SQL Solution
- Requirement 9: Verifying the Solution by Invoking It from a High-Level Language
- Summary
-
8. From What to How: Building Feature Components from the Specification
- The Requirements
- Define the Requirements
- Build a Basic Invoice Outline
- Create the Schema
- A PROJECTS Table
- Test the Schema
-
Feature Workflow Description
- Create a Project Invoice Data Set
- Invoke the Feature from Java Code
- Invoke the PL/SQL Procedure Passing the Required Data
- Insert a Call to the New Invoice Creation PL/SQL Procedure
- Run the Draft PL/SQL Code First in SQL Developer
- Insert a Row in the INVOICES Table
- Add Two Helpers
- Performance Note: PL/SQL Versus SQL
- Quick Project Status Report
- Project Feature Status Report Revisited
- Summary
-
9. Building the Complete Feature:
Final Project Integration
- Revisiting the Scale of Resilience
- Revisiting the Schema with Reference to the Model
- Back to Error and Exception Management
- Resilience Requirements Checklist
- Recoverability
- Observability
- Modifiability
- Modularity
- Tests
- Build a Basic Invoice Creation Tool
- Add Logging
- Call the Logging PL/SQL Procedure from Java Code
- Summary
- 10. Conclusion
- A. Troubleshooting a Native Oracle Installation
- B. Additional Options for Oracle Database Logging
- Index
- About the Author
Product information
- Title: Resilient Oracle PL/SQL
- Author(s):
- Release date: May 2023
- Publisher(s): O'Reilly Media, Inc.
- ISBN: 9781098134112
You might also like
video
Oracle PL/SQL
In this training course by Lewis Cunningham on Oracle PL/SQL Programming, you will learn how to …
video
Learning Oracle PL/SQL
In this Learning Oracle PL/SQL training course, expert author Darryl Hurley will teach you how to …
video
Oracle PL/SQL Programming: Fundamentals to Advanced
Overview Oracle PL/SQL Programming: Fundamentals to Advanced LiveLessons begins with a fundamentals module that covers the …
book
Oracle PL/SQL Programming, 6th Edition
Considered the best Oracle PL/SQL programming guide by the Oracle community, this definitive guide is precisely …