Skip to main content

Posts

Showing posts from September, 2025

Building maintainable REST services in APEX

A Any developer who has created a RESTful data service in APEX has faced the following issue: you create a service, and it does not work. It is a pain to debug REST services . This is typical of most APEX examples out there. You write your query or copy and paste your code here and there, and then move on. Low code, right? Never mind that it cannot perform proper code validation. Never mind that it cannot detect broken components in the future. As you might know from my previous blueprint articles or presentations, you should encapsulate everything in packages and views. That way, you can properly control your code and make sure your app continues to work. RESTful data services In short, REST services allow you to expose your data (basically SELECT statements) or logic (DML operations or more complex code) to other apps or systems. And it does not have to be a third-party system—you can consume your own services even from the same app. On the service side, you have to de...

Daily health checks, 2/3

A As a continuation of the first article , today I will focus mainly on APEX-related checks. To avoid one huge email, this part covers APEX-related checks, which you can find in the SEND_APPS procedure . Let's get started. I usually ignore all working copies, but even with this approach you might still have some leftover apps in your environment. So, in the CORE_CUSTOM package (under g_apps), you can limit the scope of your apps. This might be interesting: how would you select the same specific apps in multiple queries (without hardcoding the values in more than one place)? You declare the list in the package specification and create a function so you can use it in any statement: g_apps apex_t_varchar2 := apex_t_varchar2( 100, 110, 120, ... ); FUNCTION get_apps RETURN apex_t_varchar2 AS BEGIN RETURN core_custom.g_apps; END; Then you can use it like this: SELECT t.* FROM apex_applications t JOIN TABLE ...

Lessons from the recent Oracle layoffs

I It sucks. You work your ass off for 10–20 years, you might have been a top performer, you bring many ideas to the company, you devote your free time to your project and team, and one day, they just let you go. Many employees seek an employment contract because of this false sense of security. I got a few opportunities to work for Oracle in the past, but after reading the contract, I had to say no. At least the contract in my country was ridiculous. Companies don't share the same ethics as you. They don't share the same values as you. They are not your family. Do you think your company owes you anything? You got your paycheck, didn't you? Anything else specified in your contract? Companies are built for profit, and large companies have to restructure from time to time to get leaner, remain competitive, and ramp up profits. As a shareholder, you would probably like this. As a top-performing employee being kicked out after 10 years of service, probably not so much. ...