我在中创建了一个表Oracle SQL:
Oracle SQL
create table t1 ( empno number(6) PRIMARY KEY, empname varchar(30), hiredate date, basic number(8), deptno number(4) );
现在,我使用一个 查询 将值插入表中:
insert into t1 values((131309,'HP','20-FEB-04',2000000,1235) (131310,'HT','20-APR-14',120020,1234));
但这显示了错误:
insert into t1 values((131309,'HP','20-FEB-04',2000000,1235), * ERROR at line 1: ORA-00907: missing right parenthesis
我该如何纠正?
一条INSERT VALUES语句总是精确地插入1行。如果要插入带有硬编码值的多行,最常见的方法就是执行两个单独的INSERT语句。
INSERT VALUES
INSERT
insert into t1 values(131309,'HP','20-FEB-04',2000000,1235); insert into t1 values(131310,'HT','20-APR-14',120020,1234);
如果您确实想要,可以从中选择您的硬编码值dual,然后执行INSERT SELECT
dual
INSERT SELECT
insert into t1 select 131309, 'HP', '20-FEB-04',2000000,1235 from dual union all select 131310,'HT','20-APR-14',120020,1234 from dual
或者你可以做一个 INSERT ALL
INSERT ALL
insert all into t1 values(131309,'HP','20-FEB-04',2000000,1235) into t1 values(131310,'HT','20-APR-14',120020,1234) select * from dual
就个人而言,我只使用两个语句。
尽管这与您的问题无关,但有几条评论
insert
NULL
date
to_date