Blogs
The following are the blog entries from the team at Storm Petrel.
Oracle PL/SQL MD5 Checksum for a BLOB
PLSQL BLOB MD5 Checksum Using Oracle PL/SQL, I created a function to calculate the MD5 checksum for a Oracle BLOB. This calculation matches the Content MD5 Hash that one finds in the file properties at Oracle Cloud Infrastructure Storage (OCI Storage or OCI Bucket). You’ll find this on my Github page: https://github.com/cmoore-sp/blob_md5_checksum For those need

Oracle APEX Low-Code User Management – Part II
Oracle APEX, a terrific low-code and rapid application development, ought to isolate developer credentials from application credentials. Running applications with developer-level credentials exposes low-code/no-code applications to risks. Please avoid these features. Read why now…
Oracle APEX Low-Code Authentication and Authorization
Oracle APEX includes user security features rooted firmly within Oracle. These features permit developers to list users, add users, assign user’s permissions/roles, and removing a user. When promoting a low-code and secure application, trusting then using Oracle’s security for user authentication and authorization will save time, effort, and costs. You gain the additional benefit of drawing on decades of Oracle’s experience in user security. I am presenting this article in two parts. Together, these articles examines the APEX_ACL and APEX_UTIL packages and several public views including APEX_APPL_ACL_USER, and APEX_WORKSPACE_USERS.

How to Query Oracle Font APEX
Successes and failures with Oracle Multilingual Engine in 21C while playing with APEX Icons
Oracle PL/SQL Storing Large Objects on AWS S3
Storing large files in an Oracle database can be expensive and cumbersome. The expense comes from the size of the on-line disk storage and the efforts to run backups with archive logs. Oracle Cloud Infrastructure introduced a REST API for large object storage (multi-media files, etc.) This feature has been available with Amazon Web Services (AWS) for years. I wrote and published an API for AWS S3 storage using PL/SQL in 2016 and 2017. With AWS S3, a development team can reliably store binary large objects (BLOB / multimedia files) securely and cost effectively. In this article, I’ll explore the advantages and updates I have made to the AWS S3 package.
Querying JSON with Oracle SQL
Querying JSON data within Oracle improves year by year. For nearly 50 years, Oracle has been a relational database relying on linking data between tables. JSON often contains arrays of data within elements. Querying JSON successfully relies on more than knowing syntax, but also understanding how the data structures differ. We will explore SQL select statements to parse JSON data including arrays. You’ll need to utilize these skills while developing Application Programming Interfaces (API).
Oracle PLSQL Template for RESTful API
A key purpose of this blog entry is to communicate that we are publishing a template for PL/SQL-based API. It is located on my GITHub page (https://github.com/cmoore-sp/plsql-api.git) and communicates with a public website hosting public APIs.

APEX Debug Messages – Standardize error collection, debugging and trace
Abstract In the releases of Oracle since 12.1, the Oracle APEX team has enhanced the features and benefits of APEX_DEBUG_MESSAGES. For a couple of years, we have been able to use Oracle Application Express (APEX) debug tools to replace logger and other ad-hoc error trapping tools. The benefits include: Improved portability of code; Streamlining the
¡Ahora, Tempest-GEMS está disponible en español!
¡Estamos orgullosos de anunciar que nuestro sistema de gestión de gastos de la concesión Tempest-GEMS ya está disponible en español! El mismo software de administración de subvenciones de alta calidad en el que ha llegado a confiar ahora está disponible para sus usuarios hispanohablantes. No más traducciones confusas y lentas: los hispanohablantes pueden confiar en
Oracle PLSQL SMS and MFA
Introduction In 2015, I wrote an entry about doing multifactor authentication with PL/SQL (link: https://storm-petrel.com/orablog/2015/11/29/oracle-apex-multifactor-authentication/) The SMS services that I based my work on has disappeared from the internet landscape, rendering my code and efforts futile. So it was time to start again. The advantage was that I got to use better RESTful tools and
Border Lines in Word Templates for Apex Office Print Reports
Border lines! Feels like I’m going to lose my mind! (Madonna, anyone?) A challenge that I’ve been asked about and I’ve experienced myself using AOP to generate reports is: How do I make the borders behave? Although my AOP “style” is to use a Word template to a PDF output, I still like to utilize
PLSQL Compress BLOB
Compressing binary large objects (BLOB) or files using PL/SQL has been challenging. For at least a decade, Oracle includes UTL_COMPRESS as a means of compressing or zipping files. This technology faced a few limitations specifically, adding a BLOB with the UTL_COMPRESS.LZ_COMPRESS_ADD procedure. The source “file” is required to be raw. The utility spews errors when
Oracle PL/SQL AWS S3
Oracle PL/SQL AWS S3 Amazon Web Services (AWS) Simple Storage Solution (S3) has upgraded its application programming interface (API) to support HTTPS. This upgrade involved a redesign of the authentication process at AWS. The authentication process now involves authenticating the user and verifying the canonical request made to AWS S3. Morten Braten and Jason Straub