我正在编写一个简单的查询来显示表中列的名称。
这是我使用的 SQL:
select column_name from cols where table_name='StudentInfo';
出于某种原因,即使我的 StudentInfo 表确实有列,此查询也会导致空结果表。
表名可能以大写字母存储,以便条件table_name='StudentInfo'
失败。请注意,Oracle(以及我知道的大多数其他 RDBMS)以区分大小写的方式比较字符串。对于不区分大小写的比较,请在两个参数上使用UPPER
(或LOWER
)。所以下面的查询应该可以安全地工作:
select column_name from cols where upper(table_name)=upper('StudentInfo')
还有其他方法可以将字符串比较转换为不区分大小写的方式,例如更改会话参数NLS_COMP
和NLS_SORT
(例如,参见https://stackoverflow.com/a/5391234/2630032并在适用的情况下对该参考进行投票)。UPPER
但是,通过使用,您可以使查询独立于此类设置。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句