如何使用正则表达式检查oracle中表的所有列名?

时间:2016-04-16 12:11:34

标签: sql oracle

我经常搜索Oracle中的列名,因为我们有1000多个表。是否有更简单的方法使用正则表达式搜索列名称。

例如,列名称具有CURRENCY或COUNTRY等。

4 个答案:

答案 0 :(得分:3)

我会使用this SO question的答案并将所有数据转储到文本文件中。

此时我会使用任何带有正则表达式搜索的优秀文本编辑器来搜索文本文件,并立即概述什么是。

只要表和列不经常更改,这种方法就可以正常工作。

答案 1 :(得分:2)

如果你真的想使用正则表达式:

select c.*
from all_tab_cols
where regexp_like(column_name, 'CURRENCY|COUNTRY');

但是,我更倾向于写:

select c.*
from all_tab_cols
where column_name like '%CURRENCY%' or
      column_name like '%COUNTRY%';

答案 2 :(得分:1)

我认为它重复。

但可以使用以下查询找到它。

SELECT column_name, table_name FROM user_tab_columns WHERE column_name like '%CURRENCY%' OR column_name Like '%COUNTRY%';

答案 3 :(得分:0)

我会尝试这样的事情:

SELECT table_name, column_name from user_tab_columns

WHERE REGEXP_LIKE(column_name, 'country|currency', 'i' );

i:执行不区分大小写的匹配。

相关问题