如何在oracle 10G中的表中插入多行?

时间:2013-09-06 15:20:43

标签: oracle oracle10g

我创建了一个脚本,可以一次性在表格中插入多个数据。

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:无效字符

以上代码是正确的,但有些不正确,请帮我查一查。

1 个答案:

答案 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;