如何在整个数据库中搜索多条记录

时间:2017-01-25 13:02:36

标签: sql oracle

我的问题是,是否可以列出整个数据库中的所有列,而不仅仅是基于3个不同标准的特定表,哪些列是“OR”关系。所以例如我有一个名为“Bank”的数据库,我有3个标准“Criteria1; Criteria2; Criteria3”,如果它们中的任何一个是真的那么它们之间的关系应该是OR而不是AND而不是我将取回所有匹配的列标准和输出put应该从同一个表中提供“account_id”或“customer_id”。

在这种情况下如何处理?

1 个答案:

答案 0 :(得分:0)

有可能,但你可能不想这样做。无论如何,您可以编写一个存储过程来查找包含所需列的所有表:

  select distinct table_name from user_tab_cols utc
    where exists (select * from user_tab_cols where table_name = utc.table_name
      and column_name = 'ACCOUNT_ID')
      and exists (select * from user_tab_cols where table_name = utc.table_name
      and column_name = 'CUSTOMER_ID');

根据表格,您可以运行查询,其中附加表格名称和标准:

execute immediate 'select account_id, customer_id from agreement where '
  || your_criteria_here;

有点乱,效率低,将其视为伪代码。但是,如果您真的想为ad-hoq查询执行此操作,它应该指向正确的方向!