#sql #oracle
#sql #Oracle
Вопрос:
У меня есть запрос, в котором я пытаюсь вставить данные в свою базу данных, которую я создал с помощью команд SQL, таких как
CREATE TABLE CUSTOMER
(
REFERENCE NUMBER(5) PRIMARY KEY,
COMPANY VARCHAR2(20),
ADDRESS VARCHAR2(30),
TELEPHONE NUMBER(12),
CONTACT VARCHAR2(20)
);
Я пытаюсь вставить данные, используя несколько строк,
Я почти уверен, что этот синтаксис правильный, но он выдает ошибку «ORA-00911: недопустимый символ»
Это то, что я вставляю:
insert into customer values (130,'Affright Retail','18 Redingote Dell Tonbridge TN46 7JF',01208830667,'John Elrick');
insert into customer values (149,'Askew Inc.','37 Unmediated Parkway Walsall UB20 9WA',01299818072,'Sean Walker');
Комментарии:
1. Да, мы пробовали это. Но мы можем обрабатывать по одной строке за раз, и это работает нормально, но если мы попробуем несколько, это выдаст нам эту ошибку…
2. Попробуйте это: вставить в значения клиентов (130,’Affright Retail’,’18 Redingote Dell Tonbridge TN46 7JF’,01208830667,’John Elrick’), значения (149,’Askew Inc.’,’37 Unmediated Parkway Walsall UB20 9WA’,01299818072,’Sean Walker’);
3. @AurelioDeRosa — В Oracle нельзя указать несколько
VALUES
предложений в одномINSERT
операторе.4. Просто попробовал, это ошибка, которую мы получаем «ORA-00933: команда SQL не завершена должным образом» — Спасибо за попытку
5. @JustinCave у вас есть решение для вставки нескольких строк?
Ответ №1:
Какое приложение вы используете для выполнения этих команд?
Если вы пытаетесь запустить несколько инструкций из пользовательского приложения, вы, вероятно, захотите создать один блок PL / SQL
BEGIN
INSERT INTO customer( customer_id,
customer_name,
customer_address,
customer_code,
customer_contact )
VALUES( 130,
'Affright Retail',
'18 Redingote Dell Tonbridge TN46 7JF',
01208830667,
'John Elrick');
INSERT INTO customer( customer_id,
customer_name,
customer_address,
customer_code,
customer_contact )
VALUES( 149,
'Askew Inc.',
'37 Unmediated Parkway Walsall UB20 9WA',
01299818072,
'Sean Walker' );
END;
Если вы используете их в SQL * Plus или какой-либо среде разработки PL / SQL, вам может потребоваться использовать разделитель, зависящий от конкретного инструмента (в SQL * Plus это будет a /
в отдельной строке).
Комментарии:
1. Мы создаем его с помощью Oracle 10g Express Edition, команды SQL.
2. Спасибо, нам нужны были задействованные операторы «Begin» и «End».
Ответ №2:
попробуйте каждую вставку по отдельности, чтобы убедиться, что обе допустимы. Если кажется, что они оба работают нормально по отдельности, попробуйте поставить косую черту («/») после каждой вставки, и это должно позаботиться об этом. смотрите ниже.
insert into customer values (130,'Affright Retail','18 Redingote Dell Tonbridge TN46 7JF',01208830667,'John Elrick');
/
insert into customer values (149,'Askew Inc.','37 Unmediated Parkway Walsall UB20 9WA',01299818072,'Sean Walker');
/