PL/SQL Package Conversion for Dynamic Data Source Selection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing software systems face challenges in continuously delivering improvements without regressing existing functionality, particularly due to the tight coupling of data access and data processing code, which leads to maintenance difficulties and economic damages.

Innovation Solution

A method to dynamically select data sources at runtime by transforming existing PL/SQL packages into new definitions that separate data manipulation code from data processing code, using parameterized views and object-oriented constructs to maintain a consistent public interface while allowing changes to data manipulation code without affecting the rest of the program.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If data access code and data processing code are tightly coupled in existing PL/SQL packages, then the code structure is simple and easy to implement, but maintenance difficulty increases and regression risk increases when making improvements

Engineering Contradiction:
Improvesoftware reliabilityVSAvoidcode structure complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent segments the monolithic PL/SQL package into multiple separate layers: data access layer (handling database operations), business logic layer (processing data), and presentation layer (user interface). This segmentation isolates changes to specific layers, preventing regressions from propagating throughout the entire system while maintaining reliability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent extracts data access code from the main business logic and places it in separate data access objects (DAOs) and stored procedures. This extraction allows independent modification of data access operations without affecting business logic, reducing maintenance difficulty and regression risk while preserving overall system functionality.

Inventive Principle:
Principle #2Taking out (Extraction)

2Productivity

If software is continuously improved in a continuous delivery model, then software quality and functionality improve, but the probability of regressing existing functionality increases

Engineering Contradiction:
Improvecontinuous delivery capabilityVSAvoidfunctionality stability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent implements dynamic configuration through parameterized queries and configurable data access objects that can adapt to different data sources and schemas. This dynamic approach allows continuous improvement of software functionality while maintaining stability through flexible, reusable components that can be modified without breaking existing functionality.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent uses parameterized queries and configurable parameters to allow software behavior to be changed through parameter adjustment rather than code modification. This enables continuous delivery of improvements while maintaining functional stability, as changes can be made by modifying parameters rather than restructuring core code.

Inventive Principle:
Principle #35Parameter changes

3Ease of manufacture

If data manipulation code is embedded within package procedures, then the code is compact and easy to deploy, but changes to data manipulation code affect the entire package and increase maintenance burden

Engineering Contradiction:
Improvedeployment simplicityVSAvoidmaintenance ease
Core Design Contradiction:
Ease of manufactureVSEase of repair

Solution Approach 1:

The patent segments data manipulation code into separate stored procedures and data access objects that can be independently developed, tested, and deployed. This segmentation maintains deployment simplicity through modular units while greatly improving maintenance ease, as changes to data manipulation code no longer require repackaging the entire application.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces data access objects (DAOs) as intermediaries between the application logic and database operations. These DAOs serve as a stable interface layer that simplifies deployment while isolating data manipulation changes, allowing maintenance of data access code without affecting the broader application package.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS12008342B2Package conversions for procedural language extensions
Publication Date: 2024.06.11 ORACLE INT CORP
  • US12008342B2 patent drawing
  • US12008342B2 patent drawing
  • US12008342B2 patent drawing

AI summary

An existing package definition that statically accesses data sources may be used to generate a new definition of the package that dynamically selects between available data sources at runtime. Read-only operations in the new package can be replaced with parameterized views that select between data sources using a session variable. Data manipulation code in the existing package definition can be moved from the package to a new object type. The new definition of the package may keep the same public interface, but the function/procedure definitions can call corresponding functions/procedures in the new object type. Data manipulation code in these functions in the object can be moved to new member functions that separate data manipulation code from data processing code. Child object types can be defined for each data source that override these member functions to access different data sources.