我有一个oracle 10G 数据库,我想查找包含哪个列名的所有表名cl_
有没有办法找到我试过的所有表名{{1} 1}}和all_objects
但失败了。请建议一些方法来找到它们。
答案 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,但它只返回当前用户拥有的表的列的详细信息。
希望这有助于...... !!!