在oracle中插入多个记录

时间:2014-10-28 15:14:35

标签: sql oracle sql-insert

我正在使用oracle sql developer在我的数据库中插入行。

虽然此请求有效:

INSERT INTO TABLE ( USERID, USERNAME) VALUES (1,"ok1")

第二个(当我尝试插入多行时)不起作用:

INSERT INTO TABLE ( USERID, USERNAME) VALUES (1,"ok1"),(2,"ok2")

我收到此错误:

Erreur SQL : ORA-00933: SQL command not properly ended
00933. 00000 -  "SQL command not properly ended"

4 个答案:

答案 0 :(得分:3)

您可以使用INSERT ALL声明。例如:

INSERT ALL
  INTO mytable (column1, column2, column3) VALUES ('val1.1', 'val1.2', 'val1.3')
  INTO mytable (column1, column2, column3) VALUES ('val2.1', 'val2.2', 'val2.3')
  INTO mytable (column1, column2, column3) VALUES ('val3.1', 'val3.2', 'val3.3')
SELECT * FROM dual;

答案 1 :(得分:0)

Oracle不支持多行插入。您需要每行写一个insert

INSERT INTO TABLE ( USERID, USERNAME) VALUES (1,'ok1');
INSERT INTO TABLE ( USERID, USERNAME) VALUES (2,'ok2');

此外:字符串文字需要包含在SQL中的单个引号中。双引号用于标识符。 "ok1"是列名,'ok1'是字符串常量。

答案 2 :(得分:0)

有关输入测试数据的其他方法,请参阅最近的帖子: Insert same data multiple times

答案 3 :(得分:0)

如果您不担心 SQL 注入,请运行以下命令:

BEGIN
INSERT INTO TABLE ( USERID, USERNAME) VALUES (1,'ok1');
INSERT INTO TABLE ( USERID, USERNAME) VALUES (2,'ok2');
END;