原文地址: https://btimmerman.hashnode.dev/how-to-fix-ora-20006-error-unsupported-object-store-uri-in-dbmscloudai # 如何解决 ORA-20006 错误:DBMS_CLOUD_AI 中的不支持的 Object Store URI ![How to Fix ORA-20006 Error: Unsupported Object Store URI in DBMS_CLOUD_AI](https://btimmerman.hashnode.dev/_next/image?url=https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fstock%2Funsplash%2FOA0qcP6GOw0%2Fupload%2F8e4a1d63206d901e6b8924fda023fe20.jpeg&w=3840&q=75) 在使用 `dbms_cloud_ai` 包的 `GENERATE_SYNTHETIC_DATA` 过程中,我遇到了 `ORA-20006` 错误,提示 URI 格式不支持。 ```sql ERROR at line 1: ORA-20006: Unsupported object store URI - bearer://bearer://api.openai.com/v1/chat/completions ORA-06512: at "C##CLOUD$SERVICE.DBMS_CLOUD$PDBCS_260123_0", line 2252 ORA-06512: at "C##CLOUD$SERVICE.DBMS_CLOUD_AI", line 18924 ORA-06512: at line 2 ``` ## 解决方案 ### 1. 设置 ACL 规则 允许 HR 用户访问 OpenAI API: ```sql begin DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE( host => 'api.openai.com' , ace => xs$ace_type(privilege_list => xs$name_list('http') , principal_name => 'HR' , principal_type => xs_acl.ptype_db) ); END; ``` ### 2. 创建 OpenAI 凭据 存储 API 密钥: ```sql BEGIN DBMS_CLOUD.CREATE_CREDENTIAL( credential_name => 'OPENAI_CRED' , username => 'OPENAI' , password => 'sk-123sv*****1vmmdjhbAA' ); END; ``` ### 3. 创建 AI 配置文件 必须包含 `provider_endpoint` 和 `model` 参数: ```sql BEGIN DBMS_CLOUD_AI.CREATE_PROFILE( profile_name => 'OPENAI' , attributes => JSON_OBJECT('provider' value 'openai' ,'credential_name' value 'OPENAI_CRED' ,'provider_endpoint' value 'https://api.openai.com/v1/chat/completions' ,'model' value 'gpt-5.2') , status => 'enabled' , description => 'AI profile to use OpenAI for HR schema' ); END; ``` ## 最终测试 成功执行数据生成: ```sql BEGIN DBMS_CLOUD_AI.GENERATE_SYNTHETIC_DATA( profile_name => 'OPENAI' , object_name => 'EMP' , owner_name => 'HR' , record_count => 500 ); END; ```