oracle - 在 Oracle 云基础设施自治数据库无服务器中使用 DBMS_CLOUD.GET_OBJECT 时遇到问题

标签 oracle oracle-cloud-infrastructure

我正在尝试在 OCI 中的 2 个自治数据库(无服务器)之间创建数据库链接

我遵循的步骤列表

  1. 我使用 dbms_cloud.create_credential 为用户创建了必要的凭据

  2. 现在,我尝试使用“dbms_cloud.get_object”上传钱包文件(我已将其存储在对象存储中)。它会产生以下错误

    ORA-20000: ORA-29283: 无效的文件操作: 不存在的文件或路径 [29434] ORA-06512: 在“C##CLOUD$SERVICE.DBMS_CLOUD”,第 983 行 ORA-06512: 在“C##CLOUD$SERVICE.DBMS_CLOUD”,第 2622 行 ORA-06512: 在第 2 行

如果我使用错误的凭据或者更改 uri,系统产生的错误会有所不同。我相信 Oracle 能够获取该对象,但它会产生此错误。

有什么想法吗?

最佳答案

DBMS_CLOUD.GET_OBJECT 支持从对象存储文件读取数据并将内容作为 BLOB 返回,或将内容保存到自治数据库中给定目录对象中的文件中。

https://docs.oracle.com/en/cloud/paas/autonomous-database/adbsa/dbms-cloud-subprograms.html#GUID-3DB888C9-18C7-4A26-8DA8-EDFB260E2B14

您似乎正在尝试将钱包文件下载到目录对象以创建数据库链接。自治数据库自动配置数据库文件系统来存储文件。虽然没有贴出确切的 SQL 语法,但错误表明语法是正确的。该错误看起来像是数据库文件系统无法访问,这是服务的内部错误。

您可以通过重新启动自治数据库来解决该问题。由于这是一个老问题,现在可以通过自治数据库的自动维护来自动解决该问题。

关于oracle - 在 Oracle 云基础设施自治数据库无服务器中使用 DBMS_CLOUD.GET_OBJECT 时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63900647/

相关文章:

sql - ORA-06502 : character string buffer too small. 即使字符串大小低于声明的大小限制

oracle-cloud-infrastructure - Oracle 云实例连接问题

oracle - 如果我们在sqoop中使用6个mapper从oracle中导入数据,那么sqoop和source之间会建立多少个connection

oracle - 如何在 PLSQL 中使用 MEMBER OF

c# - 用c#检查一个表是否存在于oracle sql数据库中

oracle-cloud-infrastructure - 无法从java sdk创建实例

oracle-cloud-infrastructure - 启动卷和 block 卷有什么区别?

mysql - 关系数据库(拥有游戏的每个用户 1 个表)

ubuntu - 无法访问 Oracle 云实例上的开放端口

oracle - 如何将云中托管的 Oracle DB 与 MS Azure 逻辑应用程序连接