Объяснить не удалось. 3706: (-3706) Синтаксическая ошибка: ожидается что-то между ')' и ',' - PullRequest
0 голосов
/ 25 января 2020

Я видел эту ошибку, упомянутую в StackOverflow, но не в контексте, который я использую. Я относительно новичок в Teradata, и это поведение бросает меня за все oop. Вот код, который работает:

INSERT INTO test_table (this, that) VALUES (1, 2);

Вот код, который выдает ошибку:

INSERT INTO test_table (this, that) VALUES (1, 2), (3, 4);

Это меня очень смущает, потому что документы Teradata имеют следующий пример:

INSERT INTO cities VALUES (2, 'San Jose'), (3, 'Oakland');

Может кто-нибудь показать мне, что мне здесь не хватает? Спасибо!

Ответы [ 2 ]

0 голосов
/ 25 января 2020

Есть несколько более простой / более компактный способ сделать ту же вставку:

 INSERT INTO test_table (this, that) 
      SELECT 1, 2     UNION
      SELECT 3, 4     -- rinse and repeat

Нет больших встряхиваний, но это немного легче смотреть и - по крайней мере мне - следовать.

0 голосов
/ 25 января 2020

Teradata позволяет вставлять только одну запись с одним values. Это можно увидеть на синтаксической диаграмме для insert - здесь нет "backl oop".

Две вставки - это простой обходной путь:

INSERT INTO test_table (this, that)
    VALUES (1, 2);
INSERT INTO test_table (this, that)
    VALUES  (3, 4);
...