【发布时间】:2018-03-18 12:49:52
【问题描述】:
我是 teradata 和 scala 的新手。我正在 scala 中执行一个查询,该查询抛出 SQL 异常,但相同的查询在 Teradata Studio 中运行良好。
下面是查询:
SELECT COUNT(loan_no)
,field1
,field2
,field3
FROM testdb.loan
WHERE field1 < DATE '2017-09-30'
GROUP BY field1
,field2
,field3
ORDER BY field1
收到的错误是:
java.sql.SQLException: [Teradata 数据库] [TeraJDBC 15.00.00.20] [错误 3707] [SQLState 42000] 语法错误,预期类似于 名称或 Unicode 分隔标识符或“UDFCALLNAME”关键字或 '(' 在'FROM' 关键字和'Select' 关键字之间。
Scala 代码
val queryString = "SELECT COUNT(loan_no),field1,field2,field3 FROM testdb.loan WHERE field1 < DATE '2017-09-30' GROUP BY field1,field2,field3 ORDER BY field1"
val connString =
"jdbc:teradata://test.udaystd.com/,TMODE=TERA,charset=UTF8,
user="+userid+", password="+passwd+", ,charset=UTF8"
val dbdriver = "com.teradata.jdbc.TeraDriver"
val jddf = sqlContext.load("jdbc",
Map("url" -> connString,
"dbtable" -> queryString,
"driver" -> dbdriver))
请帮忙。
【问题讨论】:
-
你能展示包含这个查询的 Scala 代码吗?听起来这可能是您创建字符串文字的方式的问题。
-
你可以尝试在没有 where 子句的情况下运行它吗?
-
我也试过了,结果还是一样的错误。它工作的唯一方法是当我喜欢((从testdb.loan中选择*)作为贷款数据)