我正在使用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"
答案 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;