显示空结果的 Oracle SQL 查询

加里

我正在编写一个简单的查询来显示表中列的名称。

这是我使用的 SQL:

select column_name from cols where table_name='StudentInfo';

出于某种原因,即使我的 StudentInfo 表确实有列,此查询也会导致空结果表。

斯蒂芬·莱希纳(Stephan Lechner)

表名可能以大写字母存储,以便条件table_name='StudentInfo'失败。请注意,Oracle(以及我知道的大多数其他 RDBMS)以区分大小写的方式比较字符串。对于不区分大小写的比较,请在两个参数上使用UPPER(或LOWER)。所以下面的查询应该可以安全地工作:

select column_name from cols where upper(table_name)=upper('StudentInfo')

还有其他方法可以将字符串比较转换为不区分大小写的方式,例如更改会话参数NLS_COMPNLS_SORT(例如,参见https://stackoverflow.com/a/5391234/2630032并在适用的情况下对该参考进行投票)。UPPER但是,通过使用,您可以使查询独立于此类设置。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章