什么有用:
>创建表
>插入数据
>创建域索引
> SYNC DOMAIN INDEX
>通过包含找到行 – 返回行
什么不起作用:
>创建表
>插入数据
>创建物化视图
>刷新材料化视图
>在物化视图中创建域索引
>物化视图中的同步域索引
>在物质化视图中查找包含行数 – 返回零行(类似于%的工作量)
如果没有物化视图,为什么一切正常?
这是我的查询(您可以复制粘贴并在您的oracle db中尝试):
– 创建表
创建表“PCOUNTERPARTY”(“ID_COUNTERPARTY”编号(10,0),“TXT_SEARCH_FulL_name”NVARCHAR2(260),CONSTRAINT“PCOUNTERPARTY_PK”主键(“ID_COUNTERPARTY”));
–INSERT DATA.
插入PCOUNTERPARTY(ID_COUNTERPARTY,TXT_SEARCH_FulL_name)值(1184,’MARTINKO3′);
– 创建物化视图
创建物质化视图m_pcounterparty
如
选择c.ID_COUNTERPARTY,CAST(c.TXT_SEARCH_FulL_name AS varchar2(260 CHAR))作为txt_search_full_name_all
来自PCOUNTERPARTY c;
– 创建域索引
在m_pcounterparty上创建索引IDXM_1_pcounterparty(TXT_SEARCH_FulL_name_ALL)indextype是ctxsys.context ParaMETERS(‘SYNC(ON COMMIT)’);
– 物化视图的刷新
EXECUTE DBMS_MVIEW.REFRESH(‘M_PCOUNTERPARTY’);
– 索引的刷新
exec ctx_ddl.sync_index(‘IDXM_1_pcounterparty’);
– 在物化视图中搜索
选择
TXT_SEARCH_FulL_name_ALL
从
M_PCOUNTERPARTY c
哪里
CONTAINS(c.TXT_SEARCH_FulL_name_ALL,’martin’,1)> 0; – 返回零,这是问题
–c.TXT_SEARCH_FulL_name_ALL liKE’%MARTIN%’; – 返回行但我们想通过CONTAINS搜索
在“马丁路德金小”中搜索“马丁”不需要通配符.但是在“MARTINKO3”中搜索“martin”需要使用通配符.
将CONTAINS谓词更改为:
CONTAINS(c.TXT_SEARCH_FulL_name_ALL,'martin%',1) > 0;
我在Oracle 12.2上运行了测试,但在使用表或物化视图之间没有发现任何行为差异.也许有一个测试错误或一个非常具体的错误导致文本索引在您的系统上采取不同的行为.
总结以上是内存溢出为你收集整理的oracle – 物化视图中的域索引返回零行全部内容,希望文章能够帮你解决oracle – 物化视图中的域索引返回零行所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)