Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/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 使用一个insert命令插入多行_Sql_Oracle - Fatal编程技术网

Sql 使用一个insert命令插入多行

Sql 使用一个insert命令插入多行,sql,oracle,Sql,Oracle,是否可以使用一条insert语句在表中插入多行? 我知道,如果我这样做,就会发生这种情况: insert into table ( fields ) select values from another_table 但如果我想插入: row 1 - ( a1, b1, c1 ) row 2 - ( a2, b2, c2 ) ... row n - ( an, bn, cn ) 仅使用一个插入命令?否,这是不可能的。正如您自己所说的,只有使用select子句提供insert值和行,才有可能做到

是否可以使用一条insert语句在表中插入多行? 我知道,如果我这样做,就会发生这种情况:

insert into table ( fields ) select values from another_table
但如果我想插入:

row 1 - ( a1, b1, c1 )
row 2 - ( a2, b2, c2 )
...
row n - ( an, bn, cn )

仅使用一个插入命令?

否,这是不可能的。正如您自己所说的,只有使用select子句提供insert值和行,才有可能做到这一点。

两种解决方案(来源:):

注意:
每个硬编码字符串值前的字母N将字符串转换为NVARCHAR值,以匹配列的数据类型

问题是针对oracle的,那么你为什么要发布PostgreSQL答案呢?我在答案中删除了“PostgreSQL”。对于您的信息,这是标准的SQL-92。至少在阅读了接受的答案以及其他一些给定的答案后,您现在肯定知道这是可能的。
INSERT ALL
INTO table (column1, column2)
VALUES (value1, value2)
INTO table (column1, column2)
VALUES (value1, value2)
...etc...
SELECT * FROM DUAL ;
INSERT INTO table (column1, column2)
SELECT value1, value2 FROM DUAL UNION ALL
SELECT value1, value2 FROM DUAL UNION ALL
...etc...
SELECT value1, value2 FROM DUAL ;
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;
INSERT INTO products (product_no, name, price) VALUES
    (1, 'Cheese', 9.99),
    (2, 'Bread', 1.99),
    (3, 'Milk', 2.99);
INSERT INTO College (CustomerID, FirstName, MiddleName, LastName)

SELECT 7, N'Charles', N'Simmons', N'Burns'
UNION ALL
SELECT 9, N'Dominic', N'Fred', N'Einsten'
UNION ALL
SELECT 12, N'Dave', N'William, N'Bryan';