SQL 无效列错误。在sql developer中工作,在java中给出错误
Posted
技术标签:
【中文标题】SQL 无效列错误。在sql developer中工作,在java中给出错误【英文标题】:SQl invalid column error. works in sql developer, gives error in java 【发布时间】:2011-02-08 21:56:19 【问题描述】:当我运行这个查询时:select emp.emp_name as "name" from emp order by name.
这从 sqldeveloper 运行良好。但是通过java,使用休眠会话,这给出了一个sql:invalid column error.
为什么会有这种行为差异?
编辑:错误说 Invalid Column :NAME (大写)而不是名称。我会试试这个:
从 emp order by "name" 中选择 emp.emp_name 作为 "name"
【问题讨论】:
您是否尝试将其作为 Hibernate 查询语言 (HQL) 查询执行?如果是这样,则需要重写以使用类和属性名称而不是表和列名称。 @Rob:no..SQL 在休眠中查询 【参考方案1】:名称“name”可能是保留关键字。 sql开发人员正在原谅。试试
select emp.emp_name as [name] from emp order by [name]
或者更好的是,不要使用保留关键字,甚至是可能保留关键字。
即使这不是问题(可能与您的平台/rdbms 无关),您也应该避免使用“type”、“DateTime”等列名,仅出于代码可读性的目的,保留字抛开冲突。
【讨论】:
我发现值得继承 Hibernate 的DefaultNamingScheme
来引用所有表/列标识符,它确实应该已经这样做了。【参考方案2】:
请看我的编辑。它解决了这个问题。
【讨论】:
以上是关于SQL 无效列错误。在sql developer中工作,在java中给出错误的主要内容,如果未能解决你的问题,请参考以下文章
使用 Oracle SQL Developer v19 的查询中的平均日期列
PL/SQL developer 出现无效的SQL语句的解决
ORA-29280: 在 SQL Developer 中使用目录的目录路径无效
oracle SQL Developer 显示数字数据类型为空,而 Length 函数显示 ORA-01722:无效数字