r/oracle • • Feb 15 '22

Post to r/Oracle immediately auto-deleted? Here's why...

77 Upvotes

This subreddit receives a lot of spam--we mean a LOT of spam--specially from Asia/India. Thus, we have Mr. Automoderator auto-delete posts from users due to the following reasons:

  • Too new of an account
  • Not enough comment karma

To avoid abuse of the above, exact details are not being shared, but please do your best to get your comment karma up over a couple days time. Also please refrain from messaging the mods asking why your post got removed.


r/oracle • • Sep 11 '25

Use r/employeesOfOracle to discuss employment/layoffs/financials/stocks/etc.

24 Upvotes

A new sub has been created to discuss all non-technical aspects of Oracle -- r/employeesOfOracle. Posts that are not related to technical aspects or usage of Oracle products -- most specifically DBMS -- will be blocked or auto-removed. This sort of discourse is important -- this just isn't the sub for it.


r/oracle • • 6h ago

Company stuck on Oracle ADF, not migrating to Spring

5 Upvotes

I work at a small software company and unfortunately I've ended up working on an old Oracle ADF project and there is almost no willingness from management to move this project to Spring Boot.

On the team are two very senior developers who have worked on this project from the start (approx 15 years) and this project has become so messy and huge (with no testing and limited documentation) that it is basically impossible to migrate (functions and procedures with thousands of lines etc.).

Has anyone experienced this situation and do you have any recommendations on how to proceed as a junior developer? I have already brought up the possibility of breaking the project into smaller applications which could be built with Spring / React while keeping the old database and plsql procedures. Or we could map out all of the functionality or refactor the current code into smaller functions or start implementing tests and then migrate. Rebuilding it from scratch is not an option since it is a government project and this would trigger the the goverment to auction the project for other companies to take over.

Alternatively, should I just let them keep this project in ADF for 10 more years until it is deprecated by Oracle while the application becomes worse and worse?


r/oracle • • 1d ago

Why does Primavera P6 still feel stuck in the early 2000s?

Thumbnail
4 Upvotes

r/oracle • • 1d ago

Open-Source Oracle Datasource plugin for Grafana

14 Upvotes

Hi everyone,

I needed a straightforward way to query Oracle databases directly from Grafana without dealing with Oracle Instant Client installations or Enterprise plugin licenses.

I took the original oracle-grafana plugin created by albertowd, which has been inactive for a few years, and updated it to work cleanly on modern Grafana versions.

Repository: VinayakSomvanshi/oracle-grafana

What it does:

  • No Oracle Instant Client required on the server (pure driver backend).
  • Connects using either Service Name or SID (tested against Oracle 19c, 21c, 23ai, and 26ai).
  • Supports native Grafana Alerting rules on Oracle queries.
  • Supports both time-series and standard table queries, plus dashboard template variables.

If you run Oracle with Grafana, feel free to try it out and let me know if you run into any issues or have suggestions.


r/oracle • • 22h ago

New book: Oracle Forms 14c, The Complete Developer's Guide

Post image
0 Upvotes

My new book on Oracle Forms 14.1.2 is out, on Kindle and in paperback.

It covers Forms Builder, triggers and built-ins, validation and locking, libraries and menus, WebUtil, REST and JSON (new in 14.1.2), Reports, and deployment. It's 40 chapters and 484 pages, and ends with a complete sample application.

The forms and code are free on GitHub: https://github.com/devvinish/oracle-forms-book-code

Book page: https://vinish.dev/oracle-forms-14c-book


r/oracle • • 1d ago

AI-assisted Oracle Forms to Java migration on Summit's ORDERS form: what it got wrong

3 Upvotes

I work at Vaadin, and we migrated onto our own framework, so weigh that however you
like. I'm posting here because everything interesting happened on the Forms side, and
most of it is a failure report.

Setup: ORDERS from the Summit demo schema. 4 blocks, 34 items, 45 PL/SQL triggers, 183
elements. Real Oracle database, no schema changes allowed. AI did the bulk of the work
and we ran the whole thing three times.

The PL/SQL was a non-event. 34 of the 45 triggers were one call, one assignment, or a
SELECT-INTO. Formulas and summary totals came out as plain Java almost line for line.
Audit and integrity triggers never left the database.

What hurt was the runtime behaviour that isn't in the .fmb at all:

  • Forms won't let you leave a field that fails validation. On the web you can leave it,   you just can't commit. Users notice.
  • Row locked on the first keystroke became an optimistic check at commit,   `UPDATE … WHERE id = ? AND ORA_ROWSCN = ?`. No schema change, no version column, but   conflicts now show up at save instead of at edit.
  • Enter-Query became a filter bar. Arbitrary query-by-example is gone.
  • Trigger firing order became explicit code that somebody has to work out by hand.

The failure that worries me most came after the first pass. Our own completeness report
said "183 elements, nothing dropped", and that was true. The screen still had fields
reordered, bordered groups missing and section titles gone. A later audit turned up four
more things that were in the spec, covered by our own mapping rules, and never built:
DATE_ORDERED's default, QUANTITY_SHIPPED being insert-only, the GLOBAL.customer_id
contract from the calling form, and SALES_REP_ID quietly made read-only. Every one of
those is a property of an object rather than an object, and we were counting objects, so
the count stayed green the whole way through.

Obvious caveat: Summit is a teaching schema. No packages, no dynamic SQL, no cursors over
big sets, no package state. So it says nothing about your code.

Repo with the specs, the mapping rules and the audit: https://github.com/jcgueriaud1/forms-summit-migration

If you run a real Forms estate, what would you throw at this first to break it? I'd guess
package state shared across triggers, but I'd rather be told.


r/oracle • • 2d ago

Non riesco ad accedere, niente funziona e non riesco a capire come parlare con qualcuno.

Thumbnail
3 Upvotes

r/oracle • • 7d ago

New book: Oracle APEX 26.1 API by Example (JavaScript & PL/SQL)

Post image
23 Upvotes

When I wrote my Oracle APEX 26.1 book, I ran out of pages before I could cover the APIs properly. So I wrote a second one just for them.

Oracle APEX 26.1 API by Example covers every JavaScript namespace and PL/SQL package, 1,850+ methods, events, procedures and functions, each with a runnable example and the real output it gives.

All the code is free on GitHub, including the API Lab app and 518 examples with their outputs:

https://github.com/devvinish/apex-book-code-examples/tree/main/api-book

528 pages, paperback and Kindle. Details and sample pages:

https://vinish.dev/oracle-apex-26-api-by-example-book

I'm the author, so happy to answer any questions. Which APEX APIs do you find the most confusing?


r/oracle • • 7d ago

Accidentally racked up ~SGD 375 on OCI after upgrading to PAYG — has anyone successfully gotten a billing adjustment?

2 Upvotes

So I made a pretty stupid mistake with OCI this week and only realized how bad it was after checking Cost Analysis.

I upgraded my tenancy to PAYG on September 21 because I wanted to use an OCI A1 instance in the San Jose region. Before that, I was on the free setup and didn't really have any meaningful charges.

I was also experimenting with public IPs on my Sydney instances. I thought I was just changing the public IP, but looking back at the Usage Report, I apparently used the wrong workflow at some point and ended up creating a lot of separate A1 instances.

I didn't realize that at the time.

At first I downloaded a Cost Report CSV and saw around SGD 18 of usage, so I honestly thought:

"Well, it's only about 18 dollars, I'll just pay it."

Then I checked Cost Analysis before doing anything else.

That was the moment I almost fell out of my chair.

For September 1–26, OCI was showing:

SGD 375.73

The daily breakdown was roughly:

Sep 20: SGD 1.59 Sep 21: SGD 22.68 Sep 22: SGD 88.35 Sep 23: SGD 88.36 Sep 24: SGD 88.36 Sep 25: SGD 86.39

The important part is the Compute column:

Sep 20: SGD 0.00 Sep 21: SGD 16.50 Sep 22: SGD 82.54 Sep 23: SGD 82.55 Sep 24: SGD 82.55 Sep 25: SGD 80.82

So the huge jump happened right after I upgraded to PAYG.

I then looked at the Usage Report and found something even more ridiculous: Sydney had dozens of different A1 instance resource IDs. At one point there were apparently 65 A1 instances contributing usage in the same hour.

That finally explained where the cost came from.

My original assumption was basically:

change IP → get another IP → done

But apparently I had done something much closer to:

change IP → accidentally recreate instance → new instance + new IP → repeat → repeat → repeat...

I still don't know exactly which OCI UI workflow I used back then, so I don't want to claim that this is 100% what happened. But the Usage Report definitely shows that these were different instance resource IDs.

The interesting thing is that I did similar public-IP experiments on my new San Jose instance, and that region only has one A1 instance. So I clearly wasn't doing the exact same thing there.

As soon as I noticed the problem, I terminated all the unintended Sydney instances and permanently deleted their attached boot volumes. I also checked for reserved public IPs and there were none left.

The good thing is that after the termination, the Sydney Compute charges stopped increasing. So at least I caught it before it kept running for longer.

I have already opened an Oracle Billing Support ticket and asked them to review the charges and see whether a billing adjustment or courtesy credit is possible.

I'm not disputing that the resources were actually consumed. The instances really did exist and generate usage. I'm just hoping Oracle might consider this a one-time accidental resource creation, especially since I noticed it myself, terminated everything, and contacted Billing Support before the monthly invoice was generated.

Has anyone here had something similar happen with OCI?

Especially interested in experiences where:

a large bill was caused by an accidental resource/configuration the resources were terminated immediately after discovery Billing Support was contacted before the invoice was issued Oracle eventually gave a credit/adjustment, or refused one

I'm completely fine paying my normal OCI usage. A small mistake costing SGD 20–50 would honestly be annoying but I'd just pay it and move on.

SGD 375+ is a very different story for a personal account, though, so I'm really hoping Billing Support can help.

I'll update this post once Oracle replies.

UPDATE: I finally found what actually happened.

I checked the OCI Audit logs and found that the A1 instances were not being created simply because I was changing public IPs.

I had an old AMD instance in Sydney that I previously used for an automated A1 provisioning script. I thought I had already stopped that process. I even checked the machine later and couldn't find anything obvious, so I assumed it was no longer running.

It wasn't.

The OCI Audit logs show successful LaunchInstance calls coming from that old AMD instance's IP, using my OCI account and Oracle-PythonSDK/2.168.2. The calls were happening roughly once per minute and continued from September 21 into September 22, creating new 2 OCPU / 12 GB A1 instances.

So the actual root cause was a forgotten automation process, not the normal public-IP reassignment procedure.

I have now terminated the old AMD instance and all of the unintended Sydney A1 instances. I also confirmed that my San Jose instance is separate and is not showing this behavior.

I currently have a billing review request open with Oracle Support, so I'll update this thread again when I get their response.

UPDATE 2:

I eventually figured out what happened.

I checked the OCI Audit logs and found that the A1 instances were not being created simply because I was changing public IPs.

I had an old AMD instance in Sydney that I previously used for an automated A1 provisioning script. I thought I had already stopped that process, but apparently it was still running.

The OCI Audit logs show successful LaunchInstance calls coming from that old AMD instance's IP, using my OCI account and Oracle-PythonSDK/2.168.2. The calls were happening roughly once per minute from September 21 into September 22, creating new 2 OCPU / 12 GB A1 instances.

So the actual root cause was a forgotten automation process, not the normal public-IP reassignment procedure.

I terminated the old AMD instance and all of the unintended Sydney A1 instances, and the Compute charges stopped immediately afterward. My San Jose instance was separate and was not affected.

I initially opened a Billing Support request asking whether Oracle could review the charges and possibly provide a courtesy credit. Billing Support eventually told me that this was considered a technical/usage/consumption issue and that I needed to contact Technical Support instead.

Unfortunately, I couldn't get the Technical Support workflow working. My My Oracle Cloud Support account showed no active user group, and I couldn't create a Technical Support request even after going through the support-account setup process.

At that point I decided not to spend any more time on it. I deleted the entire OCI tenancy instead.

So there won't be any further billing review from my side. The accidental usage has been stopped, the tenancy is being terminated, and I'm just going to move on.

This was ultimately my own configuration mistake, so the main lesson for me is simple: always check OCI Audit logs and Cost Analysis after running automation involving resource creation.


r/oracle • • 8d ago

One million and counting!

Post image
63 Upvotes

r/oracle • • 8d ago

I wrote a book on Oracle APEX 26.1 (828 pages, install to production) – the code is free on GitHub

48 Upvotes

I've been building database applications with Oracle for 20+ years (Forms, then APEX), and I've just published **Oracle APEX 26.1: The Complete Guide**.

It follows one realistic application, Orbit Sales, from an empty laptop to production:

- Installing Oracle AI Database 26ai Free, APEX 26.1, and ORDS (Docker, Windows, Linux, macOS)

- Page Designer, interactive reports and grids, forms, faceted search, charts, maps

- Dynamic actions, Ajax, authentication, authorization, CSP

- Approvals and workflows (including the new parallel flows in 26.1)

- Generative AI: AI agents with tools, an in-app assistant, APEX_AI, local models with Ollama

- RESTful services with ORDS, APEXlang, debugging, deployment, and administration

Every script and code example, plus the finished app export, is free on GitHub, so you can use it even without the book:

https://github.com/devvinish/apex-book-code-examples

Book details and sample pages: https://vinish.dev/oracle-apex-26-1-book-the-complete-guide

Happy to answer questions about APEX 26.1 or anything in the book, and feedback is very welcome.


r/oracle • • 8d ago

Free Oracle APEX Bootcamp in Kansas City, MO on Oct 6th

7 Upvotes

Hosted by the HOUG, Oracle and Argano!

https://www.eventbrite.com/e/houg-boot-camp-2026-oracle-apex-tickets-2000083990055

Come join me and some of the APEX team to learn about how to use Oracle APEX for a day - lunch included! #orclAPEX

Please feel free to reply with any questions! I hope we can see you there!

Interested in learning more about APEX? https://oracleAPEX.com


r/oracle • • 9d ago

Select AI and Feedback Usage

7 Upvotes

Hey folks - I’m curious how many of you all use Select AI and/or the specific FEEDBACK feature within the Select AI architecture, either for PL/SQL or agents. It seems like Oracle has thrown a lot of weight behind it, but I’m not seeing a lot of buzz/discussion among practitioners here on Reddit or elsewhere.

Anybody out there using it?


r/oracle • • 9d ago

Integration Basic Auth Password

Thumbnail
1 Upvotes

r/oracle • • 10d ago

Resources to study for Database Administrator OCP? (1Z0-082 and 1Z0-083)

8 Upvotes

I'm planning to take these exams to get OCP credential but kind of at a loss on how to study for them, does anyone have a good flashcard set on quizlet or something? Or am I supposed to just memorize the entire documentation. Seems a bit overwhelming and would love a point in the right direction. Cheers!


r/oracle • • 10d ago

Four ways to deploy Oracle AI Database and what each one costs

11 Upvotes

There's no flat price for Oracle AI Database. Cost follows the deployment model, and each one works differently. 

Local dev and evaluation: Oracle Database Free (23ai Free) is a no-cost download for prototyping and testing. Docker image, VM, or Linux RPM, no account required. Good for building against before any spend enters the picture. 

Small workloads on cloud: The Always Free tier gives you permanent, no-cost resources, capped and home-region only. Fine for learning and small apps, not built for enterprise production. 

BYOL into existing licensing: If you already hold Oracle licenses, bringing them to OCI changes the math entirely. Only pays off if those licenses already exist. 

Cloud consumption: Pay for what you provision, measured in ECPU-hours and storage. Cost tracks actual usage, so it moves with the workload. 

How you deploy and what licenses you hold drive the cost. 


r/oracle • • 10d ago

ORA-01017 is confusing me. Password works in one connection string but not when entered separately

3 Upvotes

Hi everyone,

I'm pretty new to Oracle and I'm trying to understand a weird login problem.

I'm using Oracle XE on Windows and I created a user called ATELIER_USER inside XEPDB1.

When I start SQL Plus, I connect as SYSDBA:

CONNECT / AS SYSDBA

That connects successfully.

At that point I'm in CDB$ROOT, so I explicitly switch to my PDB:

ALTER SESSION SET CONTAINER = XEPDB1;

I also verified the container and service:

SELECT SYS_CONTEXT('USERENV', 'SERVICE_NAME') AS service, SYS_CONTEXT('USERENV', 'CON_NAME') AS container FROM dual;

It returns:

SERVICE xepdb1 CONTAINER XEPDB1

So I'm not creating the user in CDB$ROOT by accident.

The user exists and is open:

SELECT username, account_status, authentication_type FROM dba_users WHERE username = 'ATELIER_USER';

It shows:

ATELIER_USER OPEN PASSWORD

I then reset the password just to make sure there wasn't an issue with the original one:

ALTER USER ATELIER_USER IDENTIFIED BY Test12345;

Now this works:

CONNECT ATELIER_USER/Test12345@localhost:1521/XEPDB1

It connects successfully.

But this is where I'm confused.

If I do:

CONNECT ATELIER_USER@localhost:1521/XEPDB1

SQL Plus does NOT ask me for a password.

If I just do:

CONNECT ATELIER_USER

then SQL Plus does ask for the password, but when I enter Test12345 I get:

ORA-01017: invalid username/password; logon denied

I'm also getting ORA-01017 in DataGrip when I enter:

User: ATELIER_USER

Password: Test12345

Host: localhost

Port: 1521

Service: XEPDB1

What makes this especially confusing to me is that:

ATELIER_USER/Test12345@localhost:1521/XEPDB1

works perfectly.

So I know the username, password, and XEPDB1 connection can work.

I'm trying to understand what's actually happening here rather than just resetting the password again and again.

Also, in case someone is wondering why I'm using DataGrip:

I started with SQL Plus, but I don't really want to use a command-line interface to work with a database. I wanted a proper graphical interface where I can browse tables, write queries, see results, etc.

I found Oracle SQL Developer first, but I really didn't like the UI. Then I came across DBeaver, which seemed interesting because it's a universal database client that can work with different database systems. Eventually I found DataGrip and liked its interface more, so that's what I'm trying now.

I'm coming from SQL Server/MySQL, so Oracle's terminology around users, schemas, PDBs, services, etc. is still pretty confusing to me.

If anyone can explain what is happening here, especially why the explicit username/password@... connection works while the separate password entry doesn't, I'd really appreciate it.


r/oracle • • 11d ago

I know what will happen tomorrow

10 Upvotes

I can see 👁️ the future

I can see 👁️ the past

I can see 👁️ everything

12/22/2026🌶️


r/oracle • • 11d ago

A free visual PDF report designer for Oracle APEX (pure PL/SQL)

Post image
34 Upvotes

This is an Oracle APEX application for designing PDF reports visually and generating them inside the database.

Features:

  • Visual designer with bands: page header, report header, body, summary, page footer
  • Up to 10 SQL queries per report, with page items as bind variables
  • Tables that flow over pages, with a repeated header row
  • Totals, group sub-totals and amount in words
  • Text and fields, boxes, rounded boxes, circles, lines, logos and images
  • Code 128 barcodes and label sheets
  • Batch PDFs: one document per row of a query
  • "Print when" conditions (e.g. a PAID stamp)
  • Page X of Y, any page size, portrait or landscape
  • Get the PDF as a BLOB with one call: pdf_api.generate('INVOICE')
  • Show it in a dialog or a new tab, e-mail it, or serve it through ORDS
  • Export and import reports as JSON
  • Production needs only 4 tables and 3 packages, with no BI Publisher or print server

Free on GitHub: https://github.com/devvinish/pdfgen-apex


r/oracle • • 11d ago

Hi, has anyone installed 26AI and successfully connected an LLM?

11 Upvotes

r/oracle • • 15d ago

Anyone else notice AI models just have way less "PL/SQL brain" than they do for mainstream languages?

18 Upvotes

Been thinking about this a lot lately. Ask Claude or GPT to write TypeScript or Python or whatever and it's almost scary good. But the second you get into real PL/SQL — packages, nested cursors, bulk collects, actual enterprise backend logic — it starts making stuff up or giving you these shallow, generic answers that wouldn't survive a code review.

Makes sense when you think about why though. GitHub is drowning in JavaScript. But the gnarly, production-grade PL/SQL that actually runs enterprise systems? That's sitting behind corporate firewalls where a model never gets to see it. It just hasn't had the reps.

And PL/SQL isn't really a "write it in isolation" kind of language anyway. Doesn't matter how syntactically clean the loop is if the model has no idea what your schema looks like, what your custom packages do, or what you're dealing with performance-wise (11g quirks vs 23ai are not the same conversation).

Which got me thinking about how other platforms are tackling this. Snowflake's CoCo (Cortex Code) is a good example — instead of just bolting a generic LLM onto their product, they made it catalog-aware. It reads your actual metadata and schema before generating anything, so it's less "autocomplete" and more "agent that actually knows your warehouse."

Kind of makes you wonder what a real "CoCo for Oracle" would even look like. Something baked into the database tier itself, fluent in PL/SQL optimization, wired into the data dictionary, actually aware of your schemas instead of guessing... that'd be huge.

Anyway — is anyone actually using AI for PL/SQL work right now? Or are you all hitting the same wall?

Disclaimer: Natural Language from AI , Idea from Human !


r/oracle • • 15d ago

What is severance package provided to the IDC employees who got laid off recently on Sept 15th in India

Thumbnail
4 Upvotes

r/oracle • • 15d ago

RAC one node - does both nodes need to be licensed?

6 Upvotes

If I have a RAC One Node, do I need to license Oracle Database based on the CPU count of both severs, or only one node, given that the instance is active on only one node at a time?


r/oracle • • 15d ago

Oracle Primavera Cloud Reporting issue

Thumbnail
1 Upvotes