插入多行时的虚拟结果

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

这是什么意思,我该如何解决?

  1. INSERT ALLSELECT 之间的分号有误;这意味着它们是两个不同的语句,而不是一个语句。
  2. 您缺少很多引号来包裹您的字符串值
  3. 您不能以这种方式插入日期值;您必须使用 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;