Не могу использовать CONCAT в Teradata из SQLWorkbenchJ - PullRequest
0 голосов
/ 21 мая 2018

У меня есть скрипт, который прекрасно запускался из 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.

Помогите, пожалуйста?

1 Ответ

0 голосов
/ 21 мая 2018

В Teradata SQL нет функции concat, это функция ODBC (иногда), автоматически переводимая драйвером ODBC в правильный синтаксис.Но SQL Workbench использует JDBC, который не поддерживает эту функцию.

Просто переключитесь на Стандартный SQL ||:

TRIM(variable3) || ':' || trim(variable4)
...