SQL вставить в — Несколько строк — Oracle

#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');
/