【问题标题】:cx_Oracle query JSON CLOB with 'LIKE'cx_Oracle 使用“LIKE”查询 JSON CLOB
【发布时间】:2018-07-06 08:03:47
【问题描述】:

我正在 CLOB 中探索 cx_Oracle 的 JSON 功能。我在表上有一个索引,可以让我查询直接相等

SELECT * FROM mytable m WHERE m.jsonclob.jsonattribute = 'foo';

我希望能够用 LIKE 语句做同样的事情。

SELECT * FROM mytable m WHERE m.jsonclob.jsonattribute LIKE 'foo.%';

【问题讨论】:

  • 您能帮助我们提供有关“cx_Oracle 的 JSON 特性”的链接/源代码或文档吗?或者您是指一般的 Oracle 的 JSON 功能?
  • 或者你的意思是 Python 的 Oracle API,cx_Oracle。还有,你的问题是什么?问题是什么?你想要的结果是什么?

标签: oracle cx-oracle


【解决方案1】:

这对我来说适用于 Oracle DB 12.2:

SQL> CREATE TABLE j_purchaseorder_b (po_document CLOB CHECK (po_document IS JSON)) LOB (po_document) STORE AS (CACHE);

Table created.

SQL> INSERT INTO j_purchaseorder_b VALUES ('{"userId":2,"userName":"Bob","location":"USA"}');

1 row created.

SQL> SELECT pob.po_document.location FROM j_purchaseorder_b pob where pob.po_document.location LIKE 'US%';

LOCATION
--------------------------------------------------------------------------------
USA

参考Oracle JSON手册章节Query JSON Data.

附带说明:出于性能原因,JSON 团队喜欢推荐 BLOB 用于存储。检查文档等等等。

【讨论】:

    猜你喜欢
    • 2012-11-12
    • 2011-10-01
    • 2019-01-04
    • 1970-01-01
    • 2018-01-16
    • 2012-09-24
    • 2018-06-21
    • 1970-01-01
    • 2013-08-17
    相关资源
    最近更新 更多