Oracle Adds Scheduled NL2SQL Enrichment to OCI Enterprise AI
Oracle just made its natural-language-to-SQL service a lot less babysitting-intensive. In its September 2026 AI update, Oracle shipped three changes to NL2SQL inside OCI Enterprise AI: you can now choose which model powers enrichment and query generation, schedule metadata enrichment to refresh on a recurring interval, and push long SQL-generation requests into a background job instead of holding a connection open. None of these are flashy demo features. All three are the kind of thing that decides whether a text-to-SQL feature survives contact with a real database team.
What NL2SQL actually does
Oracle NL2SQL lives inside OCI Enterprise AI and turns a plain-English question into SQL against your own schema. It works off a semantic store: a vector store that maps business terms ('churned customers', 'Q3 bookings') to actual tables, columns and joins. Before you can ask it anything, the semantic store has to run enrichment, which reads your schema metadata, comments, synonyms, and example values so the model knows what your tables mean, not just what they're called.
Oracle natural language SQL gets a model picker
Until now, enrichment and generation both defaulted to openai.gpt-oss-120b, the model Oracle benchmarked for the job, with no way to swap it per store or per request. That's fine until you hit a schema where a different model handles ambiguous joins better, or you want to test Gemini against the default before committing a whole semantic store to it. Now you can set a model at store creation, and override it per generate-SQL call:
// Select a model when creating or updating a semantic store
{
"modelSelection": {
"modelSelectionType": "CUSTOM",
"modelId": "google.gemini-2.5-flash"
}
}
// Override the model for a single GenerateSqlFromNl request
{
"inputNaturalLanguageQuery": "Which five products had the highest sales last month?",
"modelId": "google.gemini-2.5-flash"
}
Swapping the store-level model triggers a rebuild of the enriched metadata, but the store stays queryable while that happens, so you're not taking the feature offline to try a different model.
Scheduled enrichment for OCI Enterprise AI models
The bigger operational win is scheduling. Enrichment used to be a manual step: run it once, and if your schema changed, someone had to remember to rerun it. Stale enrichment is how NL2SQL starts confidently generating SQL against a table that got renamed three weeks ago. You can now set enrichment to refresh itself on an ISO 8601 interval, with a six-hour minimum, and each refresh only touches objects that actually changed:
// Configure recurring delta enrichment when creating a semantic store
{
"enrichmentSchedule": {
"scheduleType": "INTERVAL",
"interval": "P1D"
}
}
You can also trigger a delta refresh manually through the GenerateEnrichmentJob operation instead of waiting for the schedule:
// Trigger an on-demand delta refresh
{
"enrichmentJobConfiguration": {
"configurationName": "DeltaRefreshEnrichmentJobConfiguration",
"schemaName": "SALES_SCHEMA"
}
}
Text to SQL on Oracle Cloud, without blocking a thread
The third change is completionMode. Complex questions against a large schema can take longer than a synchronous call wants to wait, so you can now set BACKGROUND_JOB instead of the default WAIT_FOR_COMPLETION, get a job ID back immediately, and poll for the result:
// Run a long SQL-generation request as a background job
{
"inputNaturalLanguageQuery": "Compare returning vs new customer revenue by region for the last four quarters",
"completionMode": "BACKGROUND_JOB"
}
That's the difference between a feature you can put behind a button in a product and one that only works as a backend demo.
Why this matters if you're shipping the feature, not just testing it
If you're a product manager scoping a natural-language data feature, these three changes remove the three excuses engineering usually raises: 'the model choice is locked in,' 'someone has to remember to re-run enrichment,' and 'slow queries will time out the request.' None of that required you to build your own scheduler or job queue. Oracle built it into the service.
What to do about it Monday morning
If you already have an OCI Enterprise AI NL2SQL semantic store running, add an enrichmentSchedule with a daily or twice-daily interval so metadata drift stops being a support ticket. If you're still scoping the feature, put model selection into your evaluation plan now: benchmark the default against at least one alternative on your actual schema before you commit, since switching later means a metadata rebuild. Check the NL2SQL quick start guide for the current list of supported regions before you promise this to a customer, since availability is still limited.
A natural-language SQL feature that quietly rebuilds its own understanding of your schema is a much easier thing to put in front of an enterprise customer than one you have to babysit by hand.