问题标签 [oracle-soda]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
139 浏览

json - Oracle Soda - VERSION 现场用例

我正在研究Oracle SODA在我的 Java 项目中将其用作 no-sql 的文档存储。

每个集合都表示为 Oracle 数据库中的一个 SQL 表。该表由一些字段组成,例如包含 JSON 有效负载的 BLOB 和 VERSION 字段。

你能给我一些在版本领域有用的用例吗?

可以怎样使用?它是用于 JSON 版本控制,还是由数据库管理的私有字段?

0 投票
1 回答
88 浏览

oracle - Oracle SODA - 如何对使用 REST 创建的进行排序?

我不知道如何在 id 字段(例如 created 或 lastModified )上使用 $orderby 和 SODA。我直接将 SODA 用于 REST 而不是其他项目。

排序语法是:

我也试过:

并用 $id: 'created' 替换路径(因为您可以在过滤器规范中使用它来访问非文档元数据。但是没有任何东西可以正确订购。

在创建对象时没有将创建的字段放入我的对象中(这违背了拥有这些字段的目的)如何在元数据字段上使用 orderby?

0 投票
1 回答
339 浏览

java - 无法从 Windows 机器与 Oracle 自治数据仓库 (ADW) 或自治 JSON 数据库建立连接

我一直试图在 Oracle OCI 上与我的数据库建立连接,他们的数据库是 ADW 或 AJD,但即使传递了正确的凭据,连接也无法建立。请在下面找到我的代码以供参考。
我已经使用并参考了 Oracle 的文档,但它并没有解决这个错误。

PSA:运行 Java 以连接到 OCI 的 Windows 机器。

https://www.youtube.com/watch?v=3L1goERwqXI

https://docs.oracle.com/en/database/oracle/simple-oracle-document-access/java/adsda/using-soda-java.html#GUID-F22DD57A-C904-4EF9-8A55-6066F9C5FD6F

https://blogs.oracle.com/developers/launch-persist-json-documents-in-the-cloud-in-10-minutes-or-less-with-autonomous-json-database

堆栈跟踪:

0 投票
1 回答
39 浏览

json - ATP 和 AJD 错误地存储 JSON

我以以下格式将数据作为 JSON 插入到集合中

当我尝试使用

返回的数据是大写字符转换为小写的形式

请任何人都可以通过指导我了解可能导致此问题的原因来帮助我解决此问题

0 投票
2 回答
70 浏览

java - 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

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

谢谢。

0 投票
1 回答
37 浏览

oracle - 将新 JSON 文档插入 Oracle 自治 JSON 数据库

使用 Database Actions (SQL Developer Web),单击“New JSON Document”按钮将新的 JSON 文档添加到集合中非常容易。

集合当然是Oracle中的一个表,而表本身有很多列:

JSON集合表

我在 ORDS 中使用 PL/SQL 处理程序创建了模块。虽然我可以在这里使用更新 JSON 文档

UPDATE "Collection" SET json_document = '{"key": "value"}' WHERE JSON_VALUE(json_document, '$.id') = :id'

我无法轻松添加新文档

INSERT INTO "Collection" (json_document) VALUES ('{"key": "value"}')

因为id设置为 PK 列并且必须指定。我如何使用 PL/SQL 在其他地方添加具有自动生成字段的新文档?还是我应该只使用 SODA for PL/SQL 来实现这一点?

谢谢!

0 投票
1 回答
74 浏览

oracle - 将 JSON_OBJECT_T 传入 SODA_DOCUMENT_T

我有一个使用 SODA 包来操作 JSON 数据库的 PL/SQL 处理程序。我想要:

  1. 读取id有效载荷中键的值
  2. 将有效负载 JSON 写入数据库中的新文档。

要执行第 1 步,处理程序需要:body被解析为 JSON_OBJECT_T 类型,以便我可以访问id有效负载中键的值。

但是对于第 2 步,如果我body在构建时再次阅读SODA_DOCUMENT_T(b_content=> :body),它只会给我一个空白文档。

我也不能直接传入 JSON_OBJECT_T 变量SODA_DOCUMENT_T(j_content=> jso),因为该函数需要 JSON 类型而不是 JSON_OBJECT_T。我找不到 JSON 类型的文档,但在代码示例中看到了JSON('{}')生成一个的函数。

然而,阅读:body_text给我带来了其他问题 - 因为JSON()函数无法处理有效负载中的换行符并给出错误。

目前要解决这个问题,我正在使用以下内容:

这似乎很愚蠢,因为我在将其转换回 JSON 类型之前再次将其序列化为字符串。是否有正确的方法来读取有效负载的键值,并将其传递到 SODA_DOCUMENT_T 中?