我有一个在Teradata SQL Assistant中正确运行的Teradata查询,但在用sqoop
脚本编写时显示错误。
查询使用如下条件对三个表进行连接:
...
From tableA as A \
Inner Join tableB as B\
Inner Join tableC as C \
On (B.ID = C.ID and (100*year(A.dt) + month(A.dt)) = C.curr_dt) \
...
我在sqoop中得到的错误来自乘法。
15/01/06 00:44:01 ERROR manager.SqlManager: Error executing statement: com.teradata.jdbc.jdbc_4.util.JDBCException: [Teradata Database] [TeraJDBC xx.yy.zz.ww] [Error 3706] [SQLState 42000] Syntax error: expected something between '*' and the 'year' keyword.
在sqoop
加入期间是否无法进行算术运算?我还没有找到任何资源来帮助我解决这个问题。任何帮助将不胜感激。
谢谢!
答案 0 :(得分:0)
YEAR和MONTH无效Teradata SQL都是ODBC语法,它由ODBC驱动程序自动重写。
请尝试EXTRACT(YEAR FROM A.dt)
。