我正在CLOB中探索cx_Oracle的JSON功能。我在桌子上有一个索引,可以查询直接相等性
SELECT * FROM mytable m WHERE m.jsonclob.jsonattribute = 'foo';
我希望能够使用LIKE
语句执行相同的操作。
SELECT * FROM mytable m WHERE m.jsonclob.jsonattribute LIKE 'foo.%';
答案 0 :(得分:0)
这对我适用于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进行存储。检查文档等,等等。