我创建了一个脚本,可以一次性在表格中插入多个数据。
create table emp
(
Empno number(3) primary key,
ename varchar2(20),
job varchar2(20),
MGR varchar2(20),
sal varchar2(20)
);
insert all
into emp values(100,'Dinesh','President',NULL,50000);
into emp values(101,'Tanveer','MGR',100,25000);
into emp values(102,'Tejas','Developer',101,12000);
select * from dual
但是上面的插入命令给出了错误
ORA-00911:无效字符
以上代码是正确的,但有些不正确,请帮我查一查。
答案 0 :(得分:1)
在Oracle中,单表INSERT
可以指定单个VALUES
子句或子查询。由于任务需要插入多行,因此单个VALUES
子句将不起作用。必须指定子查询。
生成所需子查询的一种简单方法是SELECT
每行dual
的一系列文字,并使用UNION ALL
运算符将它们全部折叠到一个表中
INSERT INTO emp ( empno, ename, job, mgr, sal )
SELECT 100, 'Dinesh', 'President', NULL, 50000 FROM dual UNION ALL
SELECT 101, 'Tanveer', 'MGR', 100, 25000 FROM dual UNION ALL
SELECT 102, 'Tejas', 'Developer', 101, 12000 FROM dual;