Oracle 插入多行时的虚拟结果

Oracle 插入多行时的虚拟结果,oracle,oracle-sqldeveloper,Oracle,Oracle Sqldeveloper,我最近创建了一个名为Movie_Stars的表。它包含6列:电影编号唯一、电影标题varchar2(30)唯一、发布日期不为空、名字varchar2(15)、姓氏varchar2(15)和电影类别varchar2(15)。我需要在表中插入以下值: insert all into movie_stars (movie_number, movie_title, year_released, first_name, last_name, movie_category) values

我最近创建了一个名为Movie_Stars的表。它包含6列:电影编号唯一、电影标题varchar2(30)唯一、发布日期不为空、名字varchar2(15)、姓氏varchar2(15)和电影类别varchar2(15)。我需要在表中插入以下值:

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
这意味着什么?我该如何修复它

  • 全部插入
    选择
    之间的分号错误;这意味着它们是两个不同的语句,而不是一个单独的语句
  • 缺少许多引号来包装字符串值
  • 不能以这种方式插入日期值;您必须使用
    来更新
    或使用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;
    

    从双重选择中选择*
    ?谢谢Aleksej!我想我只需要日期和多个单词的引号。另一件事是,当我稍后检索数据进行双重检查时,即使使用了to_date函数,第4行的日期格式也没有改变。它们只是两种不同的方法来写入日期值,但结果完全相同;如果您需要特定的格式,比如说因为您必须从输入字符串中获取日期,您可以使用适当的格式掩码来指定日期;如果您只需要编写一个日期值,您可以使用更简单的(IMHO)ANSI方法来获得它。谢谢