MySQL 本地sql查询 使用函数出现不可理解的错误

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL 本地sql查询 使用函数出现不可理解的错误相关的知识,希望对你有一定的参考价值。

Java中使用hibernate的本地SQL查询,执行下面的语句,

String sqlString="select count(*) from user";
Query query = this.getSession().createSQLQuery(sqlString);
query.uniqueResult();

mysql抛出异常:
...
Caused by: java.sql.SQLException: Column '' not found.
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:910)
at com.mysql.jdbc.ResultSet.findColumn(ResultSet.java:955)
at com.mysql.jdbc.ResultSet.getBigDecimal(ResultSet.java:1226)
at org.hibernate.type.BigIntegerType.get(BigIntegerType.java:34)

凡是在select后面跟函数的,比如MAX,MIN,CONCAT等等都遇到同样的异常。

上面的SQL在DB端直接写SQL执行没有任何问题,使用JDBC直接查询也没有问题,换成Oracle数据库再执行相同的代码也没有问题。只有在MYSQL,SQLQuery的时候出现异常。尝试升级Driver,问题依旧。

请问各位大侠是什么原因呢?
楼下两位兄弟的方法都没有喔

参考技术A 列没有发现 要加别用 用as重定义下看下 参考技术B String sqlString="select count(*) as cc from user";

sql-maven-plugin 创建函数

【中文标题】sql-maven-plugin 创建函数【英文标题】:sql-maven-plugin create function 【发布时间】:2012-02-15 17:21:28 【问题描述】:

我正在使用 hsqldb 和嵌入式码头实例(通过)maven 进行本地测试。该应用程序将在生产环境中使用 mysql 数据库。对于特定的查询,我需要调用 mysql 的 UNHEX()。如何为 hsqldb 创建一个包装器,将其称为 HEXTORAW() 函数。我尝试了以下方法,但出现了 sql-maven-plugin 错误。

CREATE FUNCTION "UNHEX"(t VARCHAR(100))
RETURNS VARBINARY(100)
BEGIN
RETURN HEXTORAW(t);
END;

sql-maven-plugin 错误:

未能在项目 rms 上执行目标 org.codehaus.mojo:sql-maven-plugin:1.5:execute (default-cli): Unexpected token: FUNCTION in statement [ [错误] 创建函数]

如何创建包装函数?

【问题讨论】:

【参考方案1】:

HSQLDB 2.x 支持 CREATE FUNCTION。如果您使用 HSQLDB 2.2.8 或更高版本,它应该可以工作。

【讨论】:

以上是关于MySQL 本地sql查询 使用函数出现不可理解的错误的主要内容,如果未能解决你的问题,请参考以下文章

MySQL数据库代码中,两个exists语句同时出现同一查询语句中时,怎么理解,,越详细越好。,

加密解密,MySQL单行函数,数学函数字符串日期时间,流程控制,完整详细可收藏查询SQL

mysql中的索引优化

mysql中的索引优化

定位慢查询

mysql-SQL优化