Oracle 23ai introduces Select AI — a feature that lets you query your Oracle database using plain English (or other natural languages), which Oracle translates into SQL using an LLM.
It’s not magic. It’s a bridge between a large language model (OpenAI, Cohere, or others) and your database schema. But it’s designed carefully, with schema awareness and configurable profiles.
Setting up a Select AI profile:
BEGIN
DBMS_CLOUD_AI.CREATE_PROFILE(
profile_name => 'hr_assistant',
attributes => '{
"provider" : "openai",
"credential_name": "openai_cred",
"object_list" : [
{"owner": "HR", "name": "EMPLOYEES"},
{"owner": "HR", "name": "DEPARTMENTS"}
]
}'
);
END;
Querying in natural language:
SELECT AI 'How many employees are in the Sales department?'
USING PROFILE hr_assistant;
Oracle translates this to the appropriate SQL and returns the results.
Modes of operation:
-- See the SQL that was generated (transparency mode)
SELECT AI SHOWSQL 'List top 5 earning employees by department'
USING PROFILE hr_assistant;
-- Explain the results in natural language
SELECT AI NARRATE 'What was the headcount change from 2023 to 2024?'
USING PROFILE hr_assistant;
Honest caveats
Select AI depends on an external LLM provider (it currently doesn’t use a built-in model). The quality of generated SQL depends heavily on schema naming, documentation, and the complexity of the question. It works best on well-named schemas with reasonable cardinality — it will struggle with highly normalized schemas or ambiguous business terminology.
But as a natural language layer on top of structured data, it’s a legitimate tool for non-SQL users. Executive dashboards, self-service analytics, and chatbot integrations are all viable use cases.
