Oracle SODA:手动创建表

问题描述

我想使用 Oracle SODA,但出于安全原因,从 java 应用程序连接到数据库用户无法修改表。

我确实向架构授予了“SODA_APP”,因此 SODA java lib 可以工作(它调用 SODA pl/sql 函数),但显然无法创建具有“权限不足”的集合

我可以在测试数据库中创建集合,并复制表结构。但我还必须复制元数据。

我知道这是因为医生说:

不要使用 sql 删除作为集合基础的数据库表。 除了存储在其表中的文档之外, 集合具有元数据,该元数据也保存在 Oracle 数据库中。 删除集合表不会同时删除关联的 元数据。

参考:https://docs.oracle.com/cd/E56351_01/doc.30/e58124/soda_for_java.htm#ADSDA111

有谁知道集合的元数据位于何处/我如何手动创建(或复制)它?

谢谢。

解决方法

因此,元数据位于此表中:

XDB.JSON$COLLECTION_METADATA

当前用户有一个视图

SELECT * FROM XDB.JSON$USER_COLLECTION_METADATA

这看起来与记录的“user_soda_collections”视图相同。