не могу вставить данные в таблицу - PullRequest
5 голосов
/ 26 ноября 2011

Я успешно создал таблицу с помощью этой команды

create  table Person(
  first_name varchar(25) not null,
  last_name varchar(25) not null,
  persoin_id number not null, 
  birth_date date,  
  country varchar (25),
  salary  number);

, и теперь я хочу вставить данные в эту таблицу

insert into  Person(persoin_id,first_name,last_name,salary,birth_date,country)
 values(100,'dato','datuashvili',350,to_date('01/01/10','DD/MM/YY'),'georgia');
 values(101,'irakli','oqruashvili',350,to_date('01/03/10','DD/MM/YY'),'georgia');

первая строка вставлена, но проблема со второй строкой

1 rows inserted.

Ошибка запуска в строке 10 в команде:
значения (101, 'irakli', 'oqruashvili', 350, to_date ('01 / 03/10 ',' DD /MM / YY '),' georgia ')
Сообщение об ошибке:
Неизвестная команда

Пожалуйста, помогите мне определить, в чем проблема? Спасибо

Ответы [ 3 ]

6 голосов
/ 26 ноября 2011

Если вы находитесь в СУБД, которая поддерживает многострочные вставки в одной INSERT:

insert into  Person(persoin_id,first_name,last_name,salary,birth_date,country)
   values
 (100,'dato','datuashvili',350,to_date('01/01/10','DD/MM/YY'),'georgia') , 
                                                       --- comma here ---^
 (101,'irakli','oqruashvili',350,to_date('01/03/10','DD/MM/YY'),'georgia') ;
 ^--- no "values" here

Если нет (например, Oracle), вам придется выполнить два оператора вставки:

insert into  Person(persoin_id,first_name,last_name,salary,birth_date,country)
   values
 (100,'dato','datuashvili',350,to_date('01/01/10','DD/MM/YY'),'georgia') ;
                                                  --- as it was  here ---^

insert into  Person(persoin_id,first_name,last_name,salary,birth_date,country)
   values
 (101,'irakli','oqruashvili',350,to_date('01/03/10','DD/MM/YY'),'georgia') ;

или используйте этот подход:

insert into  Person(persoin_id,first_name,last_name,salary,birth_date,country)
   select
 (100,'dato','datuashvili',350,to_date('01/01/10','DD/MM/YY'),'georgia') 
       from dual
   union all select
 (101,'irakli','oqruashvili',350,to_date('01/03/10','DD/MM/YY'),'georgia') 
       from dual
 ;
2 голосов
/ 26 ноября 2011

Вам нужно будет использовать 2 оператора вставки вместо одного для 2 разных наборов данных ...

insert into  Person(persoin_id,first_name,last_name,salary,birth_date,country)
  values(100,'dato','datuashvili',350,to_date('01/01/10','DD/MM/YY'),'georgia');

insert into  Person(persoin_id,first_name,last_name,salary,birth_date,country)
  values(101,'irakli','oqruashvili',350,to_date('01/03/10','DD/MM/YY'),'georgia')
1 голос
/ 26 ноября 2011

У вас есть ; в конце:

values(100,'dato','datuashvili',350,to_date('01/01/10','DD/MM/YY'),'georgia');
                                                                             ^

изменить его на ,, а также потерять values из следующей строки. Вам нужен только один values на каждую вставку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...