Evaluating an Oracle Database Schema for AI-Ready Data with the oracle-ai-ready-data Skill
Checking whether an Oracle Database schema is ready for Select AI, NL2SQL, RAG, Vector Search, and AI Agents
Evaluating an Oracle Database Schema for AI-Ready Data with the oracle-ai-ready-data Skill
Checking whether an Oracle Database schema is ready for Select AI, NL2SQL, RAG, Vector Search, and AI Agents

In this article, I evaluate how well an Oracle Database schema is prepared as AI-Ready Data, using the HR schema as an example.
Oracle Database now provides many AI-related capabilities, including Select AI, RAG, AI Vector Search, AI Agents, Synthetic Data Generation, summarization, translation, and chat-style interactions.
However, even if these AI features are available, it does not automatically mean that the target data can be used safely and accurately by AI.
To reduce hallucinations and incorrect behavior, it is important that the data passed to LLMs and AI agents has clear meaning, structure, relationships, freshness, permissions, and security context.
That is where the idea of AI-Ready Data becomes important.
In this article, I use my custom Skill, [oracle-ai-ready-data](https://github.com/shirok-tech/oracle-ai-ready-data), to evaluate the HR schema on Autonomous AI Lakehouse from the perspective of AI readiness.
What is AI-Ready Data?
AI-Ready Data is not just “clean data.”
It is data that is structured, documented, governed, and optimized so that large language models, AI agents, and machine learning models can understand, reason over, and act on it with minimal human intervention.
For an Oracle Database schema, this means checking whether:
- Tables and columns have meaningful comments
- Primary keys and foreign keys are defined
- Relationships between tables are clear
- Statistics are available and fresh
- Freshness columns such as UPDATED_AT or LAST_UPDATE_DATE exist
- Text columns or VECTOR columns are available for RAG and Vector Search
- Sensitive data and broad privileges can be reviewed
- Oracle AI features such as Select AI, RAG, and AI Agents are visible from the database
Before using AI features, I wanted to check whether the target schema is easy for AI to understand.
So I created the following Skill.
oracle-ai-ready-data
GitHub repository:
https://github.com/shirok-tech/oracle-ai-ready-data
Oracle AI Database Features
Oracle Database provides many AI-related features through Select AI and related packages. The following are the main AI features I focused on in this article.

NL2SQL
NL2SQL is one of the core features of Select AI. It allows users to describe the desired result in natural language, and Select AI can generate SQL, execute it, narrate the result, and explain the generated SQL.
Feedback
Feedback allows users to provide feedback on generated SQL or results. This can be used to improve NL2SQL accuracy.
Auto Object Selection
Auto Object Selection helps automatically select the database objects that are relevant to the user prompt. This reduces the metadata scope passed to the LLM and helps the model focus on the correct tables or views.
RAG
RAG combines embedding generation, semantic search from a vector store, and prompt augmentation using retrieved information. It helps ground AI responses in enterprise data.
SDG
SDG stands for Synthetic Data Generation. It is used to generate synthetic data that follows the schema structure without directly using sensitive production data.
AI Agents
AI Agents extend Select AI into action-oriented workflows. They can combine SQL execution, RAG, and other tools to support business automation.
Summarization
Summarization generates natural language summaries from query results or text data.
Translation
Translation provides multilingual responses or translated content.
Chat
Chat sends a user prompt to an LLM and returns a standard conversational response.
Why Schema Readiness Matters
Oracle Database now has many AI capabilities.
However, the AI features themselves are only one side of the story.
The other important question is:
Is the schema ready to be understood by AI?
For example, if table names are unclear, column comments are missing, relationships are not defined, or statistics are stale, then AI may generate incorrect SQL or return unreliable answers.
For Select AI and NL2SQL, comments, constraints, and relationships help the LLM understand the meaning of the schema.
For RAG and Vector Search, text columns, VECTOR columns, source metadata, chunking strategy, and vector indexes become important.
For AI Agents, permissions, governance, and traceability are also important because agents may perform actions based on user intent.
So before using AI features, I wanted to evaluate the target schema from the AI-Ready Data perspective.
Test Environment
The test environment is as follows.

What is oracle-ai-ready-data?
oracle-ai-ready-data is a Skill I created to evaluate Oracle Database schemas and Oracle AI feature readiness.
It collects metadata from Oracle Database using SQLcl and generates Markdown reports and improvement SQL using Python scripts.

The main files are as follows.

Evaluation Perspectives
The Skill evaluates the schema from the following perspectives.

In this Skill, table comments and column comments are especially important.
If table comments or column comments are missing, the Mandatory comment gate fails regardless of the numerical score.
This is because comments are very important for AI to understand the meaning of the schema.
Difference Between scan Profile and rag Profile

The scan profile is like a general health check of the schema.
It checks primary keys, foreign keys, comments, constraints, statistics, freshness columns, and privileges.
The rag profile focuses more on whether the schema can be used as an information source for RAG and Vector Search.
For example, it checks whether the schema has text-bearing tables, VECTOR columns, stable identifiers, freshness information, and source metadata.
Metrics Checked by the Skill
The Skill checks metrics such as the following.
The Skill supports multiple profiles. In this article, I used the following two profiles.

These metrics are then combined into the dimensions Clean, Contextual, Consumable, Current, Correlated, and Compliant.
Oracle AI Feature Readiness
In addition to schema quality, I also checked Oracle AI Feature Readiness.
This does not evaluate the schema itself.
Instead, it checks whether Oracle AI features are visible and potentially usable from the database.
For example, it checks:

In this test, I ran the evaluation on Autonomous AI Lakehouse.
As a result, DBMS_CLOUD_AI, DBMS_CLOUD_AI_AGENT, and DBMS_VECTOR were detected.
However, AI profiles and vector indexes were not created yet.
Therefore, the result was not “AI features are unavailable.”
The correct interpretation was:
AI features are available, but AI Profile, Credential, and Vector Index are not configured yet.
Running oracle-ai-ready-data Against the HR Schema
First, I downloaded the repository.
git clone https://github.com/shirok-tech/oracle-ai-ready-data.git
cd oracle-ai-ready-data
The directory structure is as follows.
oracle-ai-ready-data/
├── README.md
├── SKILL.md
├── scripts/
│ ├── oracle_ai_ready_collect.sql
│ ├── oracle_ai_feature_collect.sql
│ ├── score_oracle_ai_ready_scan.py
│ └── score_oracle_ai_feature_readiness.py
├── profiles/
│ ├── scan.yaml
│ ├── rag.yaml
│ └── feature-readiness.yaml
├── references/
└── examples/
Collecting Metadata with SQLcl
The basic command format is as follows.
sql -s <user>/<password>@<connect_identifier> @scripts/oracle_ai_ready_collect.sql <schema_owner> <table_like_pattern> <profile>
For the HR schema and the scan profile, I used the following command.
sql -s admin/<password>@adb_high @scripts/oracle_ai_ready_collect.sql HR % scan
This generates the following output file.
oracle_ai_ready_scan_HR_scan.out
Generating the scan Report
The scan report is generated from the .out file.
python3 scripts/score_oracle_ai_ready_scan.py \
oracle_ai_ready_scan_HR_scan.out \
--profile scan \
--language ja \
--output hr_scan_report.md \
--sql-output hr_scan_improvement.sql
The generated files are as follows.

Generating the rag Report
The rag report is generated in the same way.
python3 scripts/score_oracle_ai_ready_scan.py \
oracle_ai_ready_scan_HR_rag.out \
--profile rag \
--language ja \
--output hr_rag_report.md \
--sql-output hr_rag_improvement.sql
The generated files are as follows.

Running Feature Readiness Check
Next, I checked Oracle AI Feature Readiness.
sql -s admin/<password>@adb_high @scripts/oracle_ai_feature_collect.sql HR %
This generates the following file.
oracle_ai_feature_readiness_HR.out
Then I generated the Markdown report and setup SQL template.
python3 scripts/score_oracle_ai_feature_readiness.py \
oracle_ai_feature_readiness_HR.out \
--language ja \
--output oracle_ai_feature_readiness_HR.md \
--sql-output oracle_ai_feature_setup_HR.sql
The generated files are as follows.

scan Profile Result
The scan profile result was as follows.

The dimension scores were as follows.

The HR schema had 100% table comment coverage and 100% column comment coverage.
Therefore, the Mandatory comment gate passed.
On the other hand, statistics were not gathered, so the Clean and Current scores were lower.
The main metrics were as follows.

The generated improvement SQL included DBMS_STATS.GATHER_TABLE_STATS.
BEGIN
DBMS_STATS.GATHER_TABLE_STATS(
ownname => 'HR',
tabname => 'EMPLOYEES',
cascade => TRUE,
method_opt => 'FOR ALL COLUMNS SIZE AUTO'
);
END;
/
The Skill also generated templates for adding freshness columns such as UPDATED_AT.
These statements were commented out because adding columns may affect applications.
-- ALTER TABLE "HR"."COUNTRIES" ADD "UPDATED_AT" TIMESTAMP(6);
-- ALTER TABLE "HR"."DEPARTMENTS" ADD "UPDATED_AT" TIMESTAMP(6);
-- ALTER TABLE "HR"."JOBS" ADD "UPDATED_AT" TIMESTAMP(6);
-- ALTER TABLE "HR"."LOCATIONS" ADD "UPDATED_AT" TIMESTAMP(6);
-- ALTER TABLE "HR"."REGIONS" ADD "UPDATED_AT" TIMESTAMP(6);
rag Profile Result
The rag profile result was as follows.

The dimension scores were as follows.

For the rag profile, the Skill checks whether the schema can be used for RAG or Vector Search.
In this test, the result was:

The HR schema has strong comments, primary keys, foreign keys, and relationships.
Therefore, it looks suitable for Select AI and NL2SQL PoC.
However, it does not have long text columns or VECTOR columns for RAG.
In other words, the HR schema itself is not designed as a vector store for RAG.
To use RAG, I would need to design additional components such as:
- Document data
- Chunking strategy
- Embedding model
- Vector index
- Refresh strategy
- Source information for answer grounding
Feature Readiness Result
Next, I checked Oracle AI Feature Readiness on Autonomous AI Lakehouse.
The result was as follows.

At first, the report said that there were no features immediately usable.
This might look like AI features are unavailable.
However, the detailed evidence showed a different result.
The following packages were visible.

The following procedures were visible in DBMS_CLOUD_AI.
CREATE_PROFILE
CREATE_VECTOR_INDEX
GENERATE
GENERATE_SQL
GENERATE_SYNTHETIC_DATA
FEEDBACK
SET_ATTRIBUTE
SET_ATTRIBUTES
The following procedures were visible in DBMS_CLOUD_AI_AGENT.
CREATE_AGENT
CREATE_TASK
CREATE_TEAM
CREATE_TOOL
ENABLE_AGENT
ENABLE_TASK
ENABLE_TEAM
ENABLE_TOOL
Therefore, Select AI, RAG, AI Agent, SDG, Feedback, and Auto Object Selection were supported.
However, no AI Profile was created yet.
AI Profile was not detected.
So the correct interpretation is:
AI features are not available
-> incorrect
AI features are available, but AI Profile, Credential, and Vector Index are not configured yet
-> correct
Detected AI Capabilities
The following AI capabilities were detected on Autonomous AI Lakehouse.

The next step is to create an AI Profile using DBMS_CLOUD_AI.CREATE_PROFILE and then test NL2SQL using SELECT AI showsql.
What I Learned
The HR schema is strong in comments and constraints
The HR schema had very good scores for comments and constraints.

Because the Skill treats comments as a mandatory gate, the HR schema was a good baseline for AI readiness evaluation.
For Select AI and NL2SQL, comments and constraints are important because they help the LLM understand the schema.
Therefore, the HR schema looks suitable for NL2SQL PoC.
The HR schema is not yet ready as a RAG vector store
For RAG, the following metrics were 0%.

The HR schema contains business data such as employees, departments, jobs, countries, and regions.
However, it does not contain long document text or VECTOR columns.
So the HR schema is good for NL2SQL PoC, but additional design is required for RAG and Vector Search.
Select AI, RAG, and Agent features require profile setup
Feature Readiness showed that the following capabilities were supported but required setup.

No feature was missing.
However, the AI Profile had not been created.
The next required steps are:
- Choose an AI provider
- Create a credential
- Create an AI Profile using DBMS_CLOUD_AI.CREATE_PROFILE
- Set the profile using DBMS_CLOUD_AI.SET_PROFILE
- Test NL2SQL using SELECT AI showsql
- Create a Vector Index if using RAG
- Create Agent, Tool, and Team objects if using AI Agents
The Skill also generated a setup SQL template for AI Profile creation.
BEGIN
DBMS_CLOUD_AI.CREATE_PROFILE(
profile_name => 'AI_READY_NL2SQL',
status => 'enabled',
description => 'AI Ready NL2SQL profile scoped for review',
attributes => JSON_OBJECT(
'provider' VALUE 'oci',
'credential_name' VALUE 'TODO_AI_PROVIDER_CRED',
'model' VALUE 'TODO_MODEL_NAME',
'object_list' VALUE JSON_ARRAY(JSON_OBJECT('owner' VALUE 'HR')),
'comments' VALUE true,
'constraints' VALUE true,
'enforce_object_list' VALUE true
)
);
END;
/
Actual values such as provider, credential_name, model, and object_list need to be adjusted for each environment.
Summary
In this article, I used the oracle-ai-ready-data Skill to evaluate the HR schema on Autonomous AI Lakehouse from the perspective of AI-Ready Data.
I ran three types of evaluation.

The HR schema had strong table comments, column comments, primary keys, foreign keys, and constraints.
Therefore, it looks suitable for Select AI and NL2SQL PoC.
On the other hand, statistics and freshness columns need improvement.
Also, because there are no long text columns or VECTOR columns, additional design is required for RAG and Vector Search.
Autonomous AI Lakehouse had DBMS_CLOUD_AI, DBMS_CLOUD_AI_AGENT, and DBMS_VECTOR.
Therefore, the correct interpretation is not that AI features are missing.
The correct interpretation is that AI features are available, but AI Profile, Credential, and Vector Index still need to be configured.
Next, I would like to create an AI Profile and test Select AI / NL2SQL.
Upcoming Articles
- Part 1: Evaluating the HR schema in Oracle Database for AI-Ready Data
- Part 2: Creating a BAD_AI_READY schema and intentionally failing the AI readiness check
- Part 3: Creating a Select AI Profile and testing NL2SQL
- Part 4: Creating a Vector Index for Oracle AI Vector Search and RAG
- Part 5: Testing SQL Tool and RAG Tool with AI Agents
Explanation
I also created a video explanation for this topic.
In the video, I explain database metadata and AI-Ready Data in more detail, including why comments, relationships, statistics, freshness, and governance are important before using AI features such as Select AI, RAG, and AI Agents.
[embed]
Bonus
As a bonus, I also created a cyber-style manga introduction for this article.
I hope it makes the concept of AI-Ready Data a little more fun and easier to understand.

Disclaimer: This manga is an unofficial derivative work created by the author. ・Characters used: ・Zundamon ・Shikoku Metan ・Kasukabe Tsumugi
The rights to each character belong to their respective rights holders. Credits:
Zundamon / Shikoku Metan: Used according to the guidelines of the Tohoku Zunko and Zundamon Project
Kasukabe Tsumugi: Used according to the official usage guidelines
References
Skill
- oracle-ai-ready-data https://github.com/shirok-tech/oracle-ai-ready-data/tree/main/scripts
Oracle Documents
- Select AI by Release: A Quick Guide to 26ai and 19c Capabilities
- Select AI and Select AI Agent Capability Matrix
- Use Select AI for Natural Language Interaction with your Database
- Select your AI Provider and LLMs
- Profile Attributes
- DBMS_CLOUD_AI Package
- DBMS_CLOUD_AI Views
- Use AI Keyword to Enter Prompts
- Overview of Oracle AI Vector Search
- DBMS_VECTOR
- DBMS_VECTOR_CHAIN
- Select AI Agent
Oracle LiveLabs
메타데이터
- post_id
- 91f3041de7c2
- slug
- evaluating-an-oracle-database-schema-for-ai-ready-data-with-the-oracle-ai-ready-data-skill-91f3041de7c2
- url
- https://medium.com/@sync2you/evaluating-an-oracle-database-schema-for-ai-ready-data-with-the-oracle-ai-ready-data-skill-91f3041de7c2
- canonical_url
- https://medium.com/@sync2you/evaluating-an-oracle-database-schema-for-ai-ready-data-with-the-oracle-ai-ready-data-skill-91f3041de7c2
- author_url
- https://medium.com/@sync2you
- status
- ok
- fetched_at
- 2026-06-26 21:52:29