笔者在自建 Oracle AI Database 26ai 上部署了 Ask Oracle Select AI Chatbot,验证了基础自然语言问数功能可以跑通。本文记录部署过程、关键配置和踩过的坑,供想尝试的读者参考。需要说明的是,本次只验证了基础问数,其他高级功能尚未验证。
01 | 环境与前提
前提条件比较简单:Oracle 26ai 已安装,并创建独立用户 ask_oracle 作为 Parsing Schema。本次部署环境为 Oracle AI Database 26ai 23.26.2,运行在 Oracle APEX 26.1 上。
02 | 导入 APEX 应用
在 APEX 中导入应用,按向导选择 install 完成安装。






安装完成后,使用 APEX Accounts 完成登录和管理员配置,并完成 DBMS_CLOUD、DBMS_CLOUD_AI 等权限配置。
03 | 模型与 Profile 配置
模型通过 LiteLLM 接入 OpenAI-compatible 服务,关键配置如下:
- Provider:openai
- Credential:LITELLM_CRED
- Object List Mode:all
- Temperature:0
- Max Tokens:4096
- Enforce Object List:true

SH 示例数据是跨 Schema 的,前端选择器里看不到这些表,需要在 Object List 中手工填写:
text
SH.SALES
SH.CUSTOMERS
SH.PRODUCTS
SH.TIMES
SH.CHANNELS
SH.PROMOTIONS
SH.COUNTRIES



04 | 网络 ACL 配置
Oracle 访问 LiteLLM 需要为 ASK_ORACLE 配置 Network ACL:
sql
BEGIN
DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE(
host => 'litellm.example.internal',
lower_port => 443,
upper_port => 443,
ace => XS$ACE_TYPE(
privilege_list => XS$NAME_LIST(
'http',
'http_proxy'
),
principal_name => 'ASK_ORACLE',
principal_type => XS_ACL.PTYPE_DB
)
);
END;
/


05 | 遇到的问题
部署中遇到几个典型问题:
- 应用误选 Agent 模式,提示未选择 Agent Team。切换为 NL2SQL 并选择正确 Profile 即可。
- Oracle 无法访问 LiteLLM。为
ASK_ORACLE配置 Network ACL 后解决。 - HTTP Endpoint 无法创建 Profile。改用 HTTPS Endpoint。
- Object List 看不到 SH 表。这是前端选择器限制,手工输入
SH.TABLE_NAME即可。 - 复杂查询偶发 ORA-01403。通过
showprompt、showsql和 LiteLLM 日志分层排查,最终恢复正常。
sql
SELECT DBMS_CLOUD_AI.GENERATE(
prompt => '按销售渠道统计销售总额,按销售总额从高到低排列',
profile_name => 'SH_NL_ALFRED',
action => 'showprompt'
) AS constructed_prompt
FROM dual;
06 | 初步感受
Select AI 与 APEX 的集成较为完整,能快速实现自然语言查询、SQL 生成及结果展示。自建环境相比 ADB 需要额外处理 Wallet、ACL、HTTPS 和部分 ADB 专属功能,但核心的 Chat、NL2SQL、RAG 和 Agent 能力具备落地基础。
关注我,和AI一起成长~