如何从表中获取列名?

时间:2014-03-11 06:03:47

标签: sql oracle oracle11g

我正在尝试从Oracle中的表中获取列名。但我没有得到专栏名称。 我使用了很多查询,而Find可能会在Stack溢出中查询但是我没有得到答案。

我使用下面的查询:

1.  SELECT COLUMN_NAME FROM USER_TAB_COLUMNS WHERE TABLE_NAME='TABLE_NAME';

2.  SELECT COLUMN_NAME from ALL_TAB_COLUMNS where TABLE_NAME='TABLE_NAME';

但是Out Put是

 no row selected 

这里有什么问题。非常感谢你

3 个答案:

答案 0 :(得分:1)

这两个查询都是正确的,只是导致这个问题的是,也许你没有用capital letters编写你的表名你必须做这样的事情:

SELECT COLUMN_NAME FROM ALL_TAB_COLUMNS 
where TABLE_NAME = UPPER('TABLE_NAME');

OR

SELECT COLUMN_NAME FROM USER_TAB_COLUMNS 
where TABLE_NAME = UPPER('TABLE_NAME');

答案 1 :(得分:0)

试试这个:

SELECT column_name
FROM   all_tab_cols
WHERE  upper(table_name) = 'TABLE_NAME'
       AND owner = ' || +_db+ || '
       AND column_name NOT IN ( 'password', 'version', 'id' ) 

SELECT COLUMN_NAME FROM ALL_TAB_COLUMNS where TABLE_NAME = UPPER('TABLE_NAME');

答案 2 :(得分:0)

我希望此查询可以帮助您

SELECT SCHEMA_NAME  (schema_id) + '.' + t.name AS 'Table Name'    
FROM sys.tables t 
INNER JOIN sys.columns c
ON c.object_id = t.object_id
WHERE c.name like '%hmy%
ORDER BY 'Table Name'