插入多行时的虚拟结果
Dummy Results When Inserting Multiple Rows
我最近创建了一个名为 Movie_Stars 的 table。它包含 6 列:Movie_Number number unique,Movie_Title varchar2 (30) unique,Year_Released date not null,First_Name varchar2 (15),Last_Name varchar2 ( 15) 和 Movie_Category varchar2 (15)。我需要将以下值插入 table:
insert all
into movie_stars (movie_number, movie_title, year_released, first_name, last_name, movie_category)
values (1, 'New York Stories', 'January 1 1984', Nick, Nolte, Drama)
into movie_stars (movie_number, movie_title, year_released, first_name, last_name, movie_category)
values (2, 'Speed', '1999, FEB 12', Keanu, Reeves, Action)
into movie_stars (movie_number, movie_title, year_released, first_name, last_name, movie_category)
values (3, 'Superman', '1982, MAR 7', Chris, Reeve, Action)
into movie_stars (movie_number, movie_title, year_released, first_name, last_name, movie_category)
values (4, 'Ice Age', '2002, April 2', Chris, Rock, Cartoon)
into movie_stars (movie_number, movie_title, year_released, first_name, last_name, movie_category)
values (5, 'Bowfinger', '2001, August 03', Eddie, Murphy, Comedy);
select * from dual;
然而,当我运行代码时,它返回了以下结果:
DUMMY
-----
1 x
这是什么意思,我该如何解决?
INSERT ALL
和 SELECT
之间的分号有误;这意味着它们是两个不同的语句,而不是一个语句。
- 您缺少很多引号来包裹您的字符串值
- 您不能以这种方式插入日期值;您必须使用
to_date
或使用 ANSI 标准
您可以将代码重写为:
insert all
into movie_stars (movie_number, movie_title, year_released, first_name, last_name, movie_category)
values (1, 'New York Stories', date '1984-01-01', 'Nick', 'Nolte', 'Drama')
into movie_stars (movie_number, movie_title, year_released, first_name, last_name, movie_category)
values (2, 'Speed', date '1992-02-12', 'Keanu', 'Reeves', 'Action')
into movie_stars (movie_number, movie_title, year_released, first_name, last_name, movie_category)
values (3, 'Superman', date '1982-03-07', 'Chris', 'Reeve', 'Action')
into movie_stars (movie_number, movie_title, year_released, first_name, last_name, movie_category)
values (4, 'Ice Age', to_date ('02/04/2002', 'dd/mm/yyyy'), 'Chris', 'Rock', 'Cartoon')
into movie_stars (movie_number, movie_title, year_released, first_name, last_name, movie_category)
values (5, 'Bowfinger', date '2001-08-03', 'Eddie', 'Murphy', 'Comedy')
select * from dual;
我最近创建了一个名为 Movie_Stars 的 table。它包含 6 列:Movie_Number number unique,Movie_Title varchar2 (30) unique,Year_Released date not null,First_Name varchar2 (15),Last_Name varchar2 ( 15) 和 Movie_Category varchar2 (15)。我需要将以下值插入 table:
insert all
into movie_stars (movie_number, movie_title, year_released, first_name, last_name, movie_category)
values (1, 'New York Stories', 'January 1 1984', Nick, Nolte, Drama)
into movie_stars (movie_number, movie_title, year_released, first_name, last_name, movie_category)
values (2, 'Speed', '1999, FEB 12', Keanu, Reeves, Action)
into movie_stars (movie_number, movie_title, year_released, first_name, last_name, movie_category)
values (3, 'Superman', '1982, MAR 7', Chris, Reeve, Action)
into movie_stars (movie_number, movie_title, year_released, first_name, last_name, movie_category)
values (4, 'Ice Age', '2002, April 2', Chris, Rock, Cartoon)
into movie_stars (movie_number, movie_title, year_released, first_name, last_name, movie_category)
values (5, 'Bowfinger', '2001, August 03', Eddie, Murphy, Comedy);
select * from dual;
然而,当我运行代码时,它返回了以下结果:
DUMMY
-----
1 x
这是什么意思,我该如何解决?
INSERT ALL
和SELECT
之间的分号有误;这意味着它们是两个不同的语句,而不是一个语句。- 您缺少很多引号来包裹您的字符串值
- 您不能以这种方式插入日期值;您必须使用
to_date
或使用 ANSI 标准
您可以将代码重写为:
insert all
into movie_stars (movie_number, movie_title, year_released, first_name, last_name, movie_category)
values (1, 'New York Stories', date '1984-01-01', 'Nick', 'Nolte', 'Drama')
into movie_stars (movie_number, movie_title, year_released, first_name, last_name, movie_category)
values (2, 'Speed', date '1992-02-12', 'Keanu', 'Reeves', 'Action')
into movie_stars (movie_number, movie_title, year_released, first_name, last_name, movie_category)
values (3, 'Superman', date '1982-03-07', 'Chris', 'Reeve', 'Action')
into movie_stars (movie_number, movie_title, year_released, first_name, last_name, movie_category)
values (4, 'Ice Age', to_date ('02/04/2002', 'dd/mm/yyyy'), 'Chris', 'Rock', 'Cartoon')
into movie_stars (movie_number, movie_title, year_released, first_name, last_name, movie_category)
values (5, 'Bowfinger', date '2001-08-03', 'Eddie', 'Murphy', 'Comedy')
select * from dual;