我有一个 Oracle 表,其中有一列类型为 VARRAY Oracle 集合类型。
create or replace
TYPE FUSION_USER.FUSION_KEY_LIST AS VARRAY(20) OF VARCHAR2(80);
CREATE TABLE FUSION_QUEUE_AUDIT
(
"XML_ID" NUMBER NOT NULL ENABLE,
"XML_MESSAGE_TYPE" NUMBER(4,0) NOT NULL ENABLE,
"XML_MESSAGE" SYS.XMLTYPE,
"KEY_ID" NUMBER,
"KEY_LIST" FUSION_USER.FUSION_KEY_LIST,
"STATUS_IND" VARCHAR2(1 BYTE) NOT NULL ENABLE
);
KEY_LIST 列中的数据存储为:
FUSION_USER.FUSION_KEY_LIST(1600458446,N)
FUSION_USER.FUSION_KEY_LIST(1600488742,N)
FUSION_USER.FUSION_KEY_LIST(1600481496,N)
FUSION_USER.FUSION_KEY_LIST(1600473344,N)
如何在此列中搜索值?以下查询引发错误:
select * from fusion_queue_audit where xml_message_type = 560 and create_date > (sysdate - 8/24) and INSTR(key_list,'1600103836') > 0;
OR
select * from fusion_queue_audit where xml_message_type = 560 and create_date > (sysdate - 8/24) and key_list like '%1600103836%';
在此先感谢 R