我的问题是,是否可以列出整个数据库中的所有列,而不仅仅是基于3个不同标准的特定表,哪些列是“OR”关系。所以例如我有一个名为“Bank”的数据库,我有3个标准“Criteria1; Criteria2; Criteria3”,如果它们中的任何一个是真的那么它们之间的关系应该是OR而不是AND而不是我将取回所有匹配的列标准和输出put应该从同一个表中提供“account_id”或“customer_id”。
在这种情况下如何处理?
答案 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查询执行此操作,它应该指向正确的方向!