Unlocking Oracle Cloud Applications database access with JDBC driver

Unlocking Oracle Cloud Applications database access with JDBC driver

Introduction

As companies increasingly implement Oracle Cloud Applications, a common challenge emerges: efficiently and effectively retrieving data from Oracle databases. While Oracle Cloud Applications offer robust reporting and integration tools, these often require development and configuration tasks to extract information from the database. This can be particularly cumbersome for developers and functional consultants who require ad-hoc data analysis and extraction capabilities.

Background

Having worked as an Oracle Functional Consultant and Solution Architect for over 20 years, I frequently run SQL queries for data analysis, reporting, and integration development. Oracle provides limited tools for the "direct" execution of SQL queries for ad-hoc data analysis and extraction. Typically, you must create a data model or report to run SQL queries, which is acceptable for occasional tasks but inefficient for frequent use.

Many third-party web-based tools for executing and formatting SQL queries exist (Cloud Miner, SQL Harmony, etc.) but present significant drawbacks:

  • * Security Concerns: Utilizing these tools requires sharing credentials with the solution provider, an unacceptable practice, especially for instances containing sensitive data.
  • * Functional Limitations: Many third-party tools impose strict limitations on functionality and the number of rows and columns returned.

Previously, I employed a self-developed Microsoft Excel-based tool to execute SQL queries and analyze results. This involved VBA code to send SOAP requests to the Oracle reporting server and present query results in a spreadsheet. However, this approach offered a suboptimal user experience, requiring query code to be written and formatted in separate tools before being copied into Excel.

Identifying the Need for a Custom Solution

While integrating Oracle Cloud Applications with other IT systems for a client, we utilized a Java-based application server. Typically, a JDBC driver facilitates database access, but Oracle Applications databases lack such drivers due to their cloud-based architecture. This observation led to the concept of developing a custom JDBC driver with limited functionality to simplify data access for Java applications and replace my Excel-based solution with a more user-friendly GUI tool.

Development and Testing

I undertook the development of a custom JDBC driver implementation, with the initial goal of integrating it with database tools.

The initial version was released, and integration tests commenced with three selected tools capable of supporting custom drivers:

1) DBeaver (community edition) - A robust, open-source tool with extensive functionality.

1. Driver configuration window
2. Execution result
3. Memory Utilization
4. Parameters binding

Result: Fully functional solution, preferred for personal use.


2) DbVisualizer (free edition) - A lightweight tool with an intuitive interface.

5. Execution results

Result: Functional solution, albeit with limited features compared to DBeaver.

3) SQL Developer - A standard tool for Oracle developers.

Result: The simplified driver build was incompatible, potentially due to requirement of specific methods implementation.


Key Benefits of the Custom JDBC Implementation

The development of this custom JDBC driver has yielded several significant advantages, enhancing data access and analysis capabilities. These benefits address longstanding limitations in Oracle Cloud Applications and provide users with greater flexibility and efficiency in their data operations:

  • * Unrestricted Column Access: Overcomes the 100-column limitation in Oracle BI Publisher for SaaS environments. Queries with 800+ columns executed successfully, such as OSS_PRODUCTS with 857 columns. There are more than 2400 tables with 200+ columns in the Oracle Cloud Application database.
  • * Large Dataset Processing: Successfully tested data extracts for several million records, with limitations primarily governed by and Oracle BI server limitation and Java memory allocation. While it is technically feasible to archive or compress the result set, potentially reducing its size by 70-80%, implementing such a feature would impose an extremely high computational load on the database server. This trade-off between data transfer efficiency and server performance must be carefully considered in the context of overall system architecture and resource allocation

oracle.xdo.memoryguard.XDODataSizeLimitException: Stopped processing the report. Report data size of 524,296,444 bytes exceeds the maximum limit 524,288,000 bytes for online reports.        

  • * Enhanced Performance for Data Integration: Crucial for efficient data warehouse and ETL loading processes.

Development Challenges

As with any software development project, creating this JDBC driver presented several technical hurdles:

  • * Memory Usage Optimization: Implemented a non-XML format for data exchange, improving parsing efficiency and reducing network load.
  • * Driver Method Implementation: Achieved compliance with DbVisualizer and DBeaver through extensive testing and source code analysis of DBeaver and PostgreSQL JDBC drivers.

Current Limitations

While the custom JDBC driver offers substantial improvements, I acknowledge its current limitations. These constraints primarily stem from the complexity of the Oracle Cloud Applications environment and the need to balance functionality with performance and security considerations.

  • * SSO/SLAM Authentication Support: Not implemented at the moment.
  • * Metadata Extraction: Considered a supplementary feature with limited value for professionals, potentially imposing significant load on the database server or building an offline repository.
  • * LONG Data Type Support: Oracle has been deprecating this type, limiting its relevance primarily to system tables rather than business data storage.

Additional Considerations and Applicability

The implementation of the JDBC driver opens up new possibilities for data access and analysis, but it also raises important considerations regarding its use in various contexts. Understanding these factors is crucial for organizations looking to leverage similar solution effectively.

  • * Data Tool Integration: Resolves most security and data extraction limitations but introduces potential data leak risks due to large volume extractions.
  • * Java Program/Server Usage: Viable option, though not always efficient for large dataset extraction and transformation.
  • * ODBC-JDBC Connection Bridge: Expansion of solution applicability is limited due to the specific implementation architecture. One particularly promising avenue was integration with Microsoft Power BI.

Conclusion

While the custom JDBC driver offers significant improvements in data access and analysis capabilities for Oracle Cloud Applications, established integration methods and efficient languages like Go or Rust remain preferable for certain scenarios. The driver represents a valuable tool in the IT arsenal, particularly for ad-hoc data analysis and reporting tasks.

Sergey Rudenko

Orace | Oracle ERP | AWS

8 个月

Круто, но скорее коммерции от этого не будет. Чтобы было удобно должен читаться словарь, мне тут jetbrains деньги за лицензию собирались вернуть потому, что словарь не считывается :) из базы с 50000 объектами

回复

要查看或添加评论,请登录

社区洞察

其他会员也浏览了