首页 > 数据库 > Oracle > Oracle 如何实现AI自然语言查询
作者:Digital Observer(施嘉伟)
Oracle ACE Pro: Database
PostgreSQL ACE Partner
11年数据库行业经验,现主要从事数据库服务工作
拥有Oracle OCM、DB2 10.1 Fundamentals、MySQL 8.0 OCP、WebLogic 12c OCA、KCP、PCTP、PCSD、 PGCM、OCI、PolarDB技术专家、达梦师资认证、数据安全咨询高级等认证
ITPUB认证专家、PolarDB开源社区技术顾问、HaloDB技术顾问、TiDB社区技术布道师、青学会MOP技术社区专家顾问、国内某高校企业实践指导教师
公众号:Digital Observer;CSDN:施嘉伟;ITPUB:sjw1933;墨天轮:Digital Observer;PGFans:施嘉伟。
在这篇文章中,我将介绍如何在 Oracle 数据库中通过
DBMS_CLOUD_AI 包接入第三方 AI 提供商(以 Cohere 为例),并实现用自然语言查询数据库的能力。此能力是 Oracle 23ai 推出的新特性之一,非常适合希望将 AI 能力嵌入数据库的开发者或数据分析人员。
首先需要将 AI 执行权限授予目标用户(假设用户名为
TEST):
GRANT EXECUTE ON DBMS_CLOUD_AI TO TEST;GRANT EXECUTE ON DBMS_CLOUD_PIPELINE TO TEST;
允许数据库访问外部 API 服务,例如 Cohere 的 API:
BEGIN
DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE(
host => 'api.cohere.ai',
ace => xs$ace_type(
privilege_list => xs$name_list('http'),
principal_name => 'TEST',
principal_type => xs_acl.ptype_db
)
);END;
/
EXEC DBMS_CLOUD.DROP_CREDENTIAL('OPENAI_CRED');
BEGIN DBMS_CLOUD.CREATE_CREDENTIAL( credential_name => 'SELECTAI_CRED', username => 'your_email@example.com', -- 替换为你的账号 password => 'your_api_key_here' -- 替换为你的 API 密钥 );END; /
⚠️ 注意:实际部署中建议避免将密钥硬编码,可通过安全参数或密钥管理系统管理。
SELECT * FROM USER_CREDENTIALS WHERE CREDENTIAL_NAME = 'SELECTAI_CRED';
Profile 是 Oracle 用于配置 AI 服务使用参数的抽象对象,类似于一个 AI 的“连接配置文件”。
EXEC DBMS_CLOUD_AI.DROP_PROFILE(profile_name => 'SELECTAI');
BEGIN
DBMS_CLOUD_AI.CREATE_PROFILE(
profile_name => 'SELECTAI', attributes => '{
"provider": "cohere",
"credential_name": "SELECTAI_CRED",
"model": "command-r-plus",
"object_list": [
{"owner": "SHIJW", "name": "ORDERS"},
{"owner": "SHIJW", "name": "ORDER_ITEMS"},
{"owner": "SHIJW", "name": "PRODUCTS"},
{"owner": "SHIJW", "name": "USERS"}
]
}'
);END;
/
说明:
provider支持值如cohere、openai、anthropic等;object_list是希望 AI 能访问的数据表。
SELECT a.profile_name, a.status, b.attribute_name, b.attribute_valueFROM user_CLOUD_AI_PROFILES aJOIN user_cloud_ai_profile_attributes b ON a.profile_id = b.profile_idWHERE a.profile_name = 'SELECTAI';
BEGIN DBMS_CLOUD_AI.SET_PROFILE( profile_name => 'SELECTAI' );END; /
现在,一切准备就绪!你可以用自然语言进行查询,比如:



通过 Oracle 的
DBMS_CLOUD_AI 包,我们可以轻松集成外部 LLM(如 Cohere 或 OpenAI),并利用自然语言驱动对数据库的访问。这不仅降低了业务人员访问数据的门槛,也为开发更智能的数据库应用铺平了道路。
如果你正使用 Oracle 23ai,并希望让你的数据库“会说话”,不妨动手试一试!

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/23825935/viewspace-3085627/ ,如需转载,请注明出处,否则将追究法律责任。