Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/18.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 TERADATA SQL异常_Scala_Teradata - Fatal编程技术网

SCALA TERADATA SQL异常

SCALA TERADATA SQL异常,scala,teradata,Scala,Teradata,我是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

我是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] [Error 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))

请帮助。

我可以使用下面的代码进行修复

val queryString = " (SELECT COUNT(loan_no) as loancnt 
,field1,field2,field3 FROM testdb.loan WHERE field1 < DATE '2017-09-30' 
GROUP BY field1,field2,field3) as LOANDATA"

能否显示包含此查询的Scala代码?听起来这可能是您创建字符串文字的方式有问题。您可以尝试使用where子句运行它吗?我也尝试过,结果是相同的错误。它工作的唯一方式是当我使用类似于select*from testdb.loan as loanadasetems的scala前缀select*from时,这也解释了无法添加顺序的原因,因为它在派生表中是不允许的。我从来没有使用过Scala,但应该有一些设置来改变这一点。您对使用前缀选择*的看法是正确的。如果我需要它,我必须使用结果集并将其转换为DF。您可以在查询中添加order by,我想问题在于您没有将查询括在两个括号中。。。奎里。
val orderedDF = df.orderBy($"field1".desc)