Sql 在oracle中插入多条记录
我正在使用oracle sql developer在数据库中插入行 当此请求起作用时:Sql 在oracle中插入多条记录,sql,oracle,sql-insert,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
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"
Oracle不支持多行插入。您需要为每行写入一个
insert
:
INSERT INTO TABLE ( USERID, USERNAME) VALUES (1,'ok1');
INSERT INTO TABLE ( USERID, USERNAME) VALUES (2,'ok2');
此外:字符串文本需要在SQL中用单引号括起来。双引号表示标识符<代码>“ok1”是一个列名,
“ok1”
是一个字符串常量。有关输入测试数据的其他方法,请参阅最近的文章:
您可以使用
插入所有语句。例如:
全部插入
输入mytable(第1列、第2列、第3列)值('val1.1'、'val1.2'、'val1.3')
输入mytable(第1列、第2列、第3列)值('val2.1'、'val2.2'、'val2.3')
输入mytable(第1列、第2列、第3列)值('val3.1'、'val3.2'、'val3.3')
从双重选择中选择*;
如果您不担心SQL注入,请运行以下操作:
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;
这就是mysql扩展插入语法。除了mysql,它在任何地方都不能工作。@MarcB:2008和2008版本的SQL Server也支持它newer@marc_b:它实际上是ANSI SQL,没有绑定到特定的DBMS-但并非所有DBMS都支持它。甲骨文就是其中之一。
BEGIN
INSERT INTO TABLE ( USERID, USERNAME) VALUES (1,'ok1');
INSERT INTO TABLE ( USERID, USERNAME) VALUES (2,'ok2');
END;