我有一个脚本,以前从Teradata SQL Assistant运行得很好。我无法从SQL Workbench / J运行完全相同的脚本。我已将问题隔离到一个特定的行。这是查询:
SELECT
variable1 as name1,
variable2 as name2,
CONCAT(TRIM(variable3), ':', trim(variable4)) as name3
variable4 as name4,
FROM
table1
WHERE
variable4 between '2017-01-01' AND '2017-01-31';
问题是CONCAT
行。如果我评论该行,代码运行正常。如果我离开那条线,我得到了无益的信息:
[Teradata Database] [TeraJDBC 16.10.00.07] [Error 3706] [SQLState 42000]
Syntax error: expected something between '(' and the 'TRIM' keyword. [SQL State=42000,
DB Errorcode=3706]
1 statement failed.
我说没有用,因为这听起来像语法错误,但就Teradata而言,这并不是语法错误。完全相同的代码在Windows Teradata SQL Assistant上正常运行。但是,由于OSX Teradata SQL Assistant是一个垃圾箱,我必须尝试在SQL Workbench J中运行该脚本。
请帮忙吗?
答案 0 :(得分:3)
Teradata SQL中没有concat函数,它是ODBC函数(有时)由ODBC驱动程序自动转换为有效语法。但SQL Workbench使用JDBC,它不支持此功能。
只需切换到标准SQL ||
:
TRIM(variable3) || ':' || trim(variable4)