2015-01-06 3 views
0

Teradata SQL Assistant에서 올바르게 실행되는 Teradata 쿼리가 있는데 sqoop 스크립트로 작성하면 오류가 표시됩니다.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. 

IT는 sqoop에 참여하는 동안 산술 연산을 수행 할 수 없습니다? 나는 이것으로 나를 도울 어떤 자원도 찾지 못했습니다. 어떤 도움을 주시면 감사하겠습니다.

감사합니다.

+0

YEAR 및 MONTH는 유효한 Teradata SQL이 아니며 둘 다 ODBC 구문이며 ODBC 드라이버에서 자동으로 다시 작성됩니다. EXTRACT (YEAR FRAD A.dt)를 대신 사용해보십시오. – dnoeth

+0

감사! 당신이 대답을 쓰면 나는 그것을 받아 들일 것입니다. – wrahool

답변

0

YEAR 및 MONTH는 유효한 Teradata SQL이 아니며 둘 다 ODBC 구문이며 ODBC 드라이버에서 자동으로 다시 작성됩니다.

EXTRACT(YEAR FROM A.dt)을 대신 시도하십시오.