Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala SQL插值中的ResultsTextRactorException_Scala_Scalikejdbc - Fatal编程技术网

Scala SQL插值中的ResultsTextRactorException

Scala SQL插值中的ResultsTextRactorException,scala,scalikejdbc,Scala,Scalikejdbc,我在ScalikeJdbc中遇到了一些问题。在尝试运行以下代码时 val dbTableSQLSyntax: SQLSyntax = SQLSyntax.createUnsafely(dbTableName) sql""" SELECT COUNT(*) AS count, MIN($distributionColumn) AS min, MAX($distributionColumn) AS max FROM $dbTableSQLSynt

我在
ScalikeJdbc
中遇到了一些问题。在尝试运行以下代码时

val dbTableSQLSyntax: SQLSyntax = SQLSyntax.createUnsafely(dbTableName)

sql"""
   SELECT
     COUNT(*) AS count,
     MIN($distributionColumn) AS min,
     MAX($distributionColumn) AS max
   FROM
     $dbTableSQLSyntax
 """.stripMargin.
  map(mapResult).
  single().
  apply().
  get()
我得到这个错误

scalikejdbc.ResultSetExtractorException: Failed to retrieve value because For input string: "tab_id". If you're using SQLInterpolation, you may mistake u.id for u.resultName.id.
    at scalikejdbc.WrappedResultSet.wrapIfError(WrappedResultSet.scala:27)
    at scalikejdbc.WrappedResultSet.get(WrappedResultSet.scala:479)
    at scalikejdbc.WrappedResultSet.longOpt(WrappedResultSet.scala:233)
...

  • 如何在不使用的情况下消除此错误
  • 在上面的代码片段中,我有什么可以改进的地方(在性能/安全性方面)

框架/库

  • Scala 2.11.11
  • “org.scalikejdbc”%%“scalikejdbc”%%“3.2.0”

编辑-1

作为对@Kazuhiro Sera的回答的回应,我提供了我的
mapResult
方法

def mapResult(rs: WrappedResultSet): (Long, Long, Long) = {
  val count: Long = rs.long("count")
  val minOpt: Option[Long] = rs.longOpt("min")
  val maxOpt: Option[Long] = rs.longOpt("max")
  (count, minOpt.getOrElse(0), maxOpt.getOrElse(Long.MaxValue))
}

这取决于您的
mapResult
函数。很抱歉,
mapreult
试图从ResultSet值中获取
tag\u id
。在这种情况下,SQL查询只返回
count
min
max
,我当时可能在做梦:异常再清楚不过了:
。因为对于输入字符串:“tab\u id”。
。实际上,在我的
MySQL
表中有一个名为
tab\u id
的列;我在(发布问题时)/错误地在
SQL
-query中的列中使用了不同的
mapResult
方法。