数据库在许多表中搜索

时间:2013-11-25 12:07:37

标签: database oracle

我有许多表的数据库(Oracle),例如:CLIENTS,PRODUCTS,OPERATIONS等。我想实现搜索器,这将允许我写一个短语'MA'并给出提示:

MA RIA客户

MA STERMIND产品

RE MA PPING操作

等...

如何实现?这样做的方法是什么?我应该创建另一个表所有名称(客户名称,产品名称,操作名称......)?或者只是在所有表中搜索,使用很多LIKE条件? 如何有效地做到这一点?

很多人认为我的问题是重复的,所以我想解释一下:我不是在寻找一次我想要使用的解决方案,我需要在一个生产环境中实现它,很多人会在那里搜索上面的信息。我知道我可以从dba_tables,dba_tab_columns视图创建动态sql,但我想准备有效的方法来做到这一点!在WHERE子句中使用LIKE将不使用索引,因此我将进行全表扫描 - 这在具有许多用户和大表的系统中不起作用。要知道我会考虑使用关键字列上的域索引创建表,并使用CONTAINS而不是LIKE,但也许你有另一个想法。也许另一个数据库引擎有可以帮助我的功能?

2 个答案:

答案 0 :(得分:0)

阅读UNION和VIEW。您应该使用哪一个取决于您的数据库的大小和查询的复杂性。

答案 1 :(得分:0)

根据您的数据库大小,您可以使用view + union
或新表
另请检查Oracle Text
http://docs.oracle.com/cd/B28359_01/text.111/b28303/ind.htm#g1020588