java搜索时,想将oracle数据库中某个用户下所有表中包含关键字(如“中国”)的记录找出来 20

1.不知道哪张表会有符合条件的记录2.不知道表的哪个字段会有符合条件的记录3.希望能够给个简单的实现demo... 1. 不知道哪张表会有符合条件的记录
2. 不知道表的哪个字段会有符合条件的记录
3. 希望能够给个简单的实现demo
展开
 我来答
renfengjun1986
2016-09-18 · 知道合伙人软件行家
renfengjun1986
知道合伙人软件行家
采纳数:925 获赞数:1553
中国地质调查局特聘数据库专家 CSDN博客专家 百度知道数据库行家 炼数成金版主 想了解更多请关注我的博客:

向TA提问 私信TA
展开全部
你需要一张字典表,字典表里面包含,表名称,字段名称,表以及字段描述
存储过程里面动态构造查询语句

字典表比较麻烦需要包括:
数据库里面的表以及字段的数据字典名称以及字段名(例如dba_tables,dba_tab_columns等)
用户下面表和字段的相关信息(用户下的表,字段名称等,表里面每个字段都要在字典表里面有一条记录)
其他的你动脑想想吧。
追问
  1. 如果用字典表的话,那查询的时候要遍历表和遍历字段,用like来匹配?如果数据量很大的话,这么做效率应该是蛮低的吧。

  2. 用Oracle Text里面的contains函数的话可以对一张表进行多字段匹配,但是不知道效率高还是低,同时创建索引时使用datastore创建多字段好像也是蛮耗时间的,这样定时去同步索引的时候是不是也会很耗时间?

追答
1、你这个需求只能使用LIKE,不然根本不可能定性到底用什么方法来匹配,这个字典表是用来生成动态SQL语句的。存储过程里面遍历这个字典表,生成具体的一个个sql语句来看具体的表里面或者字段里面是否包含你需要的数据。
2、要使用Oracle Text,除非你把要查询里的数据库面的所有表的所有字段全部加上全文索引,不过oracle内部的数据字典表你是加不了的。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式