如何找到一个表名,其中列名包含cl_

13 浏览
0 Comments

如何找到一个表名,其中列名包含cl_

我有一个 Oracle 10G 数据库,我想找到所有列名包含 \"cl_\" 的表名。是否有办法找到所有的表名?我尝试过 \"all_objects\" 和 \"all_source\",但没有成功。请建议一些方法来找到它们。

0
0 Comments

如何找到表名中包含cl_的列名?

在Oracle数据库中,可以使用ALL_TAB_COLS或DBA_TAB_COLS视图来查找所有用户拥有的表的列的详细信息。

以下是使用ALL_TAB_COLS视图的示例查询,以查找列名中包含cl_的表:

SELECT * FROM ALL_TAB_COLS
WHERE UPPER(column_name) like UPPER('%cl\_%') ESCAPE '\'; -- 返回列名中包含'cl_'的列的详细信息

如果要查找列名以cl_开头的表,可以使用以下查询:

SELECT * FROM ALL_TAB_COLS
WHERE UPPER(column_name) like UPPER('cl\_%') ESCAPE '\'; -- 返回列名以'cl_'开头的列的详细信息

如果要查找列名以cl_结尾的表,可以使用以下查询:

SELECT * FROM ALL_TAB_COLS
WHERE UPPER(column_name) like UPPER('%cl\_') ESCAPE '\'; -- 返回列名以'cl_'结尾的列的详细信息

另外,还可以尝试使用DBA_TAB_COLS视图进行类似的查询。需要注意的是,如果只想查找当前用户拥有的表的列的详细信息,可以使用USER_TAB_COLS视图。

希望这对你有所帮助!

0
0 Comments

问题出现的原因:

用户想要在Oracle数据库中找到一个表名中包含"cl_"的列名。然而,他们并不清楚如何编写正确的查询语句来实现这个目标。

解决方法:

为了解决这个问题,用户可以尝试使用以下查询语句来查找符合条件的表名:

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

这个查询语句使用了USER_TAB_COLUMNS视图,该视图包含了当前用户所有表的列信息。通过在WHERE子句中使用LIKE运算符和通配符%,我们可以指定要查找的列名模式。在这个例子中,我们使用了"cl\_"作为列名的模式,其中"\"用于转义"_"字符。由于LIKE运算符是区分大小写的,所以我们使用了UPPER函数将模式转换为大写。最后,我们使用ESCAPE关键字指定了转义字符"\"。

当执行这个查询语句时,Oracle数据库将返回所有列名中包含"cl_"的表的信息。用户可以根据返回的结果来查找他们所需的表名。

0
0 Comments

如何找到表名中包含cl_的列名?

在查找包含cl_的列名时,可以使用ALL_TAB_COLS视图来获取所需的详细信息。

例如,我在SCOTT模式中添加了一个名为T的新表,其中列名为EMP_ID,我希望输出结果中只有一个行,列名类似于'EMP_%'。

让我们看看具体操作 -

编辑:忘记转义下划线。

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>

通过查询ALL_TAB_COLS视图,我们可以得到满足条件的表名和列名。

0