SQL навигатор - оператор «вставить в» не работает с несколькими строками - PullRequest
0 голосов
/ 29 мая 2020

Одна строка работает нормально:

insert into maalerverdi.evverdigrenser
(maalepktnr, fradato, tildato, telleverkartnr, minimum, maximum)
values 
(100121, '01-jan-2019', '01-jun-2073', 202, -0.0001, 50)

Но добавление еще одной строки не работает:

insert into maalerverdi.evverdigrenser
(maalepktnr, fradato, tildato, telleverkartnr, minimum, maximum)
values 
(100121, '01-jan-2019', '01-jun-2073', 202, -0.0001, 50),
(100126, '01-jan-2019', '01-jun-2073', 202, -0.0001, 50);

Ошибка: SQL команда не завершена должным образом

1 Ответ

0 голосов
/ 29 мая 2020

Ваше сообщение об ошибке выглядит как Oracle s ORA-00933 (сообщение SQL command not properly ended). Действительно, эта база данных (в отличие от многих других) не поддерживает синтаксис, который вы используете для одновременной вставки нескольких строк.

Если вы хотите сделать это в одном операторе, вы можете использовать insert all синтаксис вместо этого. Его цель - объединить insert в одну или несколько таблиц, поэтому вам нужно повторить имя таблицы и список столбцов:

insert all 
    into maalerverdi.evverdigrenser
        (maalepktnr, fradato, tildato, telleverkartnr, minimum, maximum)
        values  (100121, '01-jan-2019', '01-jun-2073', 202, -0.0001, 50)
    into maalerverdi.evverdigrenser
        (maalepktnr, fradato, tildato, telleverkartnr, minimum, maximum)
        values  (100126, '01-jan-2019', '01-jun-2073', 202, -0.0001, 50);

Боковое примечание: похоже, вы пытаетесь вставить в date столбцы. Если это так, я бы рекомендовал использовать стандартный синтаксис для объявления литералов даты, а не этот настраиваемый формат (будет ли Oracle успешно интерпретироваться как дата, зависит от вашей базы данных и настроек сеанса). Это будет:

insert all 
    into maalerverdi.evverdigrenser
        (maalepktnr, fradato, tildato, telleverkartnr, minimum, maximum)
        values  (100121, date '2019-01-01', date '2073-06-01', 202, -0.0001, 50)
    into maalerverdi.evverdigrenser
        (maalepktnr, fradato, tildato, telleverkartnr, minimum, maximum)
        values  (100126, date '2019-01-01', date '1973-06-01', 202, -0.0001, 50);
...