title: 多行插入语句
date: 2024-08-26 20:23:41
categories: Oracle
tags: [Oracle , DataBase]
description: 多行插入语句

在 Oracle 中,使用多行插入語句可以一次性向表中插入多條記錄。以下是使用多行插入的幾種方法:

方法 1: 使用 INSERT ALL

這種方法可以在單個 SQL 語句中插入多條記錄。
INSERT ALL
    INTO table_name (column1, column2, column3) VALUES (value1a, value2a, value3a)
    INTO table_name (column1, column2, column3) VALUES (value1b, value2b, value3b)
    INTO table_name (column1, column2, column3) VALUES (value1c, value2c, value3c)
SELECT * FROM dual;

在這個範例中,table_name 是你要插入數據的表名,column1, column2, column3 是你要插入數據的列名,value1a, value2a, value3a 等是對應列的數據值。

方法 2: 使用 INSERT INTO ... SELECT ... FROM dual

這種方法可以使用 UNION ALL 將多行記錄插入到表中。
INSERT INTO table_name (column1, column2, column3)
SELECT value1a, value2a, value3a FROM dual
UNION ALL
SELECT value1b, value2b, value3b FROM dual
UNION ALL
SELECT value1c, value2c, value3c FROM dual;

在這個範例中,每個 SELECT … FROM dual 語句代表一行要插入的數據,UNION ALL 用於合併多個 SELECT 結果。

方法 3: 使用多行 INSERT 語句 (批量插入)

你可以將多個單獨的 INSERT 語句放在一起作為一個批次執行:
BEGIN
    INSERT INTO table_name (column1, column2, column3) VALUES (value1a, value2a, value3a);
    INSERT INTO table_name (column1, column2, column3) VALUES (value1b, value2b, value3b);
    INSERT INTO table_name (column1, column2, column3) VALUES (value1c, value2c, value3c);
    -- 其他插入語句
    COMMIT;
END;

這種方法適用於 PL/SQL 塊中進行批量插入操作。

總結

多行插入語句可以有效地減少插入操作的數量,提高數據插入的效率。根據具體需求,可以選擇 INSERT ALL、INSERT INTO ... SELECT ... FROM dual 或批量插入的方法來實現。