【问题标题】:Why do I keep getting this error message ORA-00928: missing SELECT keyword?为什么我不断收到此错误消息 ORA-00928:缺少 SELECT 关键字?
【发布时间】:2019-04-08 05:31:15
【问题描述】:

为什么我总是收到此错误消息

ORA-00928:缺少 SELECT 关键字

这是我的查询...

INSERT ALL
INTO ACADEMIC_SESSION (SESSIONID, SESSIONNAME) VALUES (200, 'FALL SESSION'),
INTO ACADEMIC_SESSION (SESSIONID, SESSIONNAME) VALUES (300, 'SUMMER SESSION')
SELECT * from DUAL;

我看不出有什么问题。

【问题讨论】:

  • 你想在表格中插入什么?为什么需要 select 语句?
  • @TeeKea,这种类型的“全部插入”语句需要选择。

标签: sql oracle


【解决方案1】:

语法错误;使用其中之一:

SQL> create table academic_session
  2    (session_id number,
  3     session_name varchar2(20));

Table created.

SQL> insert into academic_session (session_id, session_name)
  2  select 200, 'fall session' from dual union all
  3  select 300, 'summer session' from dual;

2 rows created.

SQL> insert all
  2    into academic_session (session_id, session_name)
  3      values (400, 'spring session')
  4    into academic_session (session_id, session_name)
  5      values (500, 'winter session')
  6  select * from dual;

2 rows created.

SQL>

【讨论】:

  • 好的,行得通!你给我的最后一个语法看起来和我的一模一样,我错过了什么?
  • 你没有错过任何东西;你的逗号(在两个 INSERT 之间)太多了 :)
【解决方案2】:

INTO 语句之间没有逗号 ,

INSERT ALL
INTO ACADEMIC_SESSION (SESSIONID, SESSIONNAME) VALUES (200, 'FALL SESSION')
INTO ACADEMIC_SESSION (SESSIONID, SESSIONNAME) VALUES (300, 'SUMMER SESSION')
SELECT * from DUAL;

【讨论】:

    【解决方案3】:

    如果你需要在表格中插入两行,你可以这样做:

    INSERT INTO ACADEMIC_SESSION (SESSIONID, SESSIONNAME) 
    VALUES (200, 'FALL SESSION'), (300, 'SUMMER SESSION');
    

    希望这会有所帮助。

    【讨论】:

    • 我也试过这个。实际上,我复制并粘贴了您所写的内容并收到此错误消息 ORA-00933: SQL 命令未正确结束。它允许我插入一行,但我有多行,这将需要很长时间。
    猜你喜欢
    • 2018-07-23
    • 2018-09-17
    • 2018-01-20
    • 2018-05-13
    • 2013-01-21
    • 1970-01-01
    • 1970-01-01
    • 2019-08-17
    • 1970-01-01
    相关资源
    最近更新 更多