ORA-00928: Ошибка отсутствия ключевого слова SELECT при использовании функции последовательности

Извините, я новичок в материалах SQLPlus!

Итак, у меня есть таблица с именем iowe, в которую предварительно загружены четыре записи. Вот как это выглядит:

NAME           AMOUNT Serial Number
---------- ---------- -------------
Praveen         20500             1
Roshan           5000             2
Rohit            5000             3
Shashi           8000             4

Пока я не ввел эти четыре записи, я не знал о функции последовательности в SQL. Поэтому я попытался указать это в этой таблице. Я хотел ввести новую запись, скажем, "XXX" в имени, 500 в "Сумме", и с помощью команды последовательности я хотел "Серийный номер". strong>" для автоматического увеличения.

Поэтому я создал последовательность под названием iowesqn, которая выглядит так, когда я выбираю * из user_sequences:

SEQUENCE_NAME                   MIN_VALUE  MAX_VALUE INCREMENT_BY C O CACHE_SIZE LAST_NUMBER
------------------------------ ---------- ---------- ------------ - - ---------- -----------
SQN                                     1          5            2 N N          0           3
IOWESQN                                 1 1.0000E+27            1 N N          0           7

Не обращайте внимания на последовательность SQN

Чтобы вставить последовательность IOWESQN, я использовал эту команду: "вставить в значения iowe(имя, количество, "Серийный номер")('XXX', 500, iowesqn.nextval)"

Все работает нормально. Серийный номер столбца увеличивается на 1 при каждой записи. Однако, когда я пытаюсь "вставить в iowe ('&name', '&amount', "Serial Number") значение (iowesqn.nextval));", он запрашивает имя и сумму но тут же (после ввода суммы) выдает ошибку. Он гласит: "ORA-00928: отсутствует ключевое слово SELECT".

Это все, что появляется после ввода суммы:

старый 1: вставить в iowe ('&name', '&amount', "Серийный номер") value(iowesqn.nextval)) новый 1: вставить в iowe ('ret', 'ert', "Серийный номер") value(iowesqn.nextval)) вставить в iowe('ret', 'ert', "Серийный номер") value(iowesqn.nextval)) * ОШИБКА в строке 1: ORA-00928: отсутствует ключевое слово SELECT

Пожалуйста, скажите мне, что я (или (крайне маловероятно)) делаю неправильно.

Заранее спасибо.


person Anonymous Person    schedule 04.04.2013    source источник


Ответы (4)


Ваше утверждение неверно. Просто как тот. С этим фиксированным утверждением:

вставить в iowe(имя, количество, "серийный номер") значения('XXX', 500, iowesqn.nextval)

Вероятно, вы имели в виду заменить свои значения переменными, а не своими полями?

вставить в iowe(имя, количество, "серийный номер") значения('&название', &количество, iowesqn.nextval)

person nvoigt    schedule 04.04.2013
comment
Сладкий! Оно работало завораживающе! Есть ли способ удалить или изменить столбец LAST_NUMBER в user_sequences для последовательности IOWESQN на что-то еще? Скажем 6? Сейчас в 11. Это вообще возможно? Хотите, чтобы я задал этот вопрос в новом посте? - person Anonymous Person; 04.04.2013
comment
Если я правильно помню, вы не можете сбросить этот номер. Однако вы можете воссоздать последовательность с (например) 6 в качестве нового начального значения. - person nvoigt; 04.04.2013

Другие пользователи могли использовать value вместо values. Это еще один случай, когда вы можете столкнуться с этой проблемой.

person Abhishek Kashyap    schedule 22.05.2016

Я только что нашел еще один случай, когда я получаю «отсутствующее ключевое слово SELECT». Я попытался вставить имена столбцов в кавычки, например:

вставить в подписку ('SUBSCRIPTION_ID','SUBSCRIPTION_NAME','CREATED_DATE') значения ('558768','','20-JAN-20 10.37.47.901000000 PM');

Как только я удалил кавычки вокруг имен столбцов, это сработало:

вставить в подписку (SUBSCRIPTION_ID,SUBSCRIPTION_NAME,CREATED_DATE) значения ('558768','','20-JAN-20 10.37.47.901000000 PM');

person Steve Stilson    schedule 23.01.2020

Это потому, что вы пропустили упоминание списка столбцов

вставить в table_name(1,'alskdjflasf')

это должно быть похоже на эту вставку в table_name (id, name) values ​​(1.'lakjsdflasdf')

person shashigura    schedule 19.12.2017