I'm getting an error in SQL command not properly ended

前端 未结 5 689
梦毁少年i
梦毁少年i 2021-01-17 17:36

when I enter this

INSERT INTO works_on
(essn, pno, hours)
values
(\'123456789\', 1, 32.5),
(\'123456789\', 2, 7.5),
(\'666884444\', 3, 40.0),
(\'453453453\',         


        
5条回答
  •  無奈伤痛
    2021-01-17 18:04

    In Oracle, you can't specify multiple sets of values like this (I'm guessing that you're coming from a MySQL background where that syntax is allowed). The simplest approach is to generate multiple INSERT statements

    INSERT INTO works_on
    (essn, pno, hours)
    values
    ('123456789', 1, 32.5);
    
    INSERT INTO works_on
    (essn, pno, hours)
    values
    ('123456789', 2, 7.5);
    
    INSERT INTO works_on
    (essn, pno, hours)
    values
    ('666884444', 3, 40.0);
    
    ...
    

    You can also insert multiple rows using a single INSERT ALL statement

    INSERT ALL
      INTO works_on(essn, pno, hours) values('123456789', 1, 32.5)
      INTO works_on(essn, pno, hours) values('123456789', 2, 7.5)
      INTO works_on(essn, pno, hours) values('666884444', 3, 40.0)
      INTO works_on(essn, pno, hours) values('453453453', 1, 20.0)
      INTO works_on(essn, pno, hours) values('453453453', 2, 20.0)
      INTO works_on(essn, pno, hours) values('333445555', 2, 10.0)
      INTO works_on(essn, pno, hours) values('333445555', 3, 10.0)
      ...
    SELECT *
      FROM dual;
    

提交回复
热议问题