Oracle11g 在oracle 11g中搜索单个表中特定字符串的查询

Oracle11g 在oracle 11g中搜索单个表中特定字符串的查询,oracle11g,Oracle11g,我需要一个Oracle11g中的查询,该查询将搜索表中的所有列以查找特定字符串并给出结果 我尝试了下面给出的一个查询,它对我有效 SELECT * FROM account WHERE ACCOUNT_ID like'%gaurav%' OR ACCOUNT_NAME like'%gaurav%' OR PARENT_ACCOUNT like'%gaurav%' OR WEBSITE LIKE '%gaurav%' OR TYPE LIKE'%gaurav%' OR DESC

我需要一个Oracle11g中的查询,该查询将搜索表中的所有列以查找特定字符串并给出结果

我尝试了下面给出的一个查询,它对我有效

SELECT * FROM account
WHERE ACCOUNT_ID like'%gaurav%'
OR    ACCOUNT_NAME like'%gaurav%'
OR    PARENT_ACCOUNT like'%gaurav%'
OR WEBSITE LIKE '%gaurav%'
OR TYPE LIKE'%gaurav%'
  OR   DESCRIPTION LIKE'%gaurav%'
 OR    ACCOUNT_OWNER LIKE'%gaurav%'
  OR    PHONE LIKE'%gaurav%'
OR    STD_CODE LIKE'%gaurav%'
OR    EMPLOYEES LIKE'%gaurav%';

但是我需要一个更简化的解决方案…因为我的表中只有10列,所以这个解决方案是可以的,但是如果我的表中有30-40列会怎么样。

如果您的表中有30-40列,您应该规范化数据库:并且您可能不需要检查所有列(例如电话)。您的解决方案很好:)

如果您需要一个通用、可重复且易于使用的解决方案,请使用

  • 输入参数:“表名”、“搜索字符串”
  • 结果:元组{“rowid”,“列名与匹配项“}的集合
在表函数中,您可以通过动态SQL实现所需的功能

至于上面使用的术语

  • 收藏:
  • “tuple”=记录
  • 动态SQL:
  • (流水线)表函数:

谢谢你的建议“nop77svk”,但我没有完全理解,事实上我是数据库中的新手,所以请你详细解释一下你想说什么。你能为此写一个查询,这样我就更容易理解了吗?对不起,我不能。它不能通过单个查询来解决。至于表函数,它是一段相当长的PL/SQL代码。在你身边找一位熟练的Oracle开发人员,让他为你编写这样一个表函数。那会更好。谢谢你的建议…但是我的数据已经标准化了,我的表中有31列…写所有这些列名不是一个可行的解决方案,我想…还有其他解决方案吗。比如一个函数或者一个过程,可以帮助你完成这项工作。