一 描述
构建多行记录的介绍
从 Oracle Database 23c 开始, Oracle 数据库支持构建多行记录的操作,相较于之前的数据库版本经常遇到 insert 时不能跟多行的情况,如果是一个比较复杂的表达式,在单行 insert 输入,不太方便。因此在 23c 在 WITH 时可以不通过构建查询的方式,直接用 VALUES 语句创建数组,这使查询更加简化。由于 VALUES 语句可使用,那么除 WITH 构建外,在 INSERT 语句中,也可以实现多行的直接插入。
二 构建多行记录测试
创建测试数据
SQL> create table employees(department_id int, salary number(10));
SQL> insert into employees values (1,1000);
SQL> insert into employees values (2,2000);
SQL> insert into employees values (3,3000);
SQL> insert into employees values (4,4000);
环境测试
SQL> select banner from v$version;
BANNER
--------------------------------------------------------------------------------
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
SQL> insert into employees values (5,5000),(6,6000),(7,7000),(8,8000);
insert into employees values (5,5000),(6,6000),(7,7000),(8,8000)
*
ERROR at line 1:
ORA-00933: SQL command not properly ended
这里报错了, ORA-00933: SQL command not properly ended
环境测试
SQL> select BANNER from v$version;
BANNER
--------------------------------------------------------------------------------
Oracle Database 23c Free, Release 23.0.0.0.0 - Developer-Release
SQL> insert into employees values (5,5000),(6,6000),(7,7000),(8,8000);
4 rows created.
SQL> commit;
Commit complete.
