Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 在oracle中插入多条记录_Sql_Oracle_Sql Insert - Fatal编程技术网

Sql 在oracle中插入多条记录

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

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

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;