如何查找列名由cl_组成的表名

时间:2014-12-31 10:22:14

标签: sql database oracle10g

我有一个oracle 10G 数据库,我想查找包含哪个列名的所有表名cl_有没有办法找到我试过的所有表名{{1} 1}}和all_objects但失败了。请建议一些方法来找到它们。

3 个答案:

答案 0 :(得分:1)

在oracle中尝试此查询:

SELECT * FROM USER_TAB_COLUMNS WHERE COLUMN_NAME like upper('%cl\_%') escape '\';

答案 1 :(得分:1)

ALL_TAB_COLS会为您提供所需的详细信息。

例如,我向SCOTT架构添加了一个新表T,列名为EMP_ID,我希望列名like 'EMP_%'

的输出中只有一行

让我们看看 -

修改忘记加入ESCAPE下划线。

SQL> CREATE TABLE t(EMP_ID NUMBER);

Table created.

SQL>
SQL> SELECT table_name, column_name
  2  FROM all_tab_cols
  3  WHERE owner='SCOTT'
  4  AND column_name LIKE 'EMP\_%' ESCAPE '\';

TABLE_NAME           COLUMN_NAME
-------------------- --------------
T                    EMP_ID

SQL>

答案 2 :(得分:0)

all_tab_cols包含所有用户拥有的所有表列的详细信息。

SELECT * FROM ALL_TAB_COLS
WHERE UPPER(column_name) like UPPER('%cl\_%') ESCAPE '\';--Returns details of all column names which has 'cl_' in its name

SELECT * FROM ALL_TAB_COLS
WHERE UPPER(column_name) like UPPER('cl\_%') ESCAPE '\';--Returns details of all column names which start with 'cl_' in its name

SELECT * FROM ALL_TAB_COLS
WHERE UPPER(column_name) like UPPER('%cl\_') ESCAPE '\';--Returns details of all column names which end with 'cl_' in its name

您也可以尝试DBA_TAB_COLS。

注意:您也可以使用USER_TAB_COLS,但它只返回当前用户拥有的表的列的详细信息。

希望这有助于...... !!!