Oracle 基础问题,高手求解
我最近写了一条insertinto语句,发现个问题,求解我用的是Oracle11g,见insertinto语句insertintokkk(userid,ename,dep...
我最近写了一条insert into 语句,发现个问题,求解我用的是Oracle 11g ,见insert into 语句 insert into kkk (userid,ename,deptno) values (select empno, ename, deptno from emp where deptno=10); ORA-00936: 缺失表达式我认为这应该是对的, insert into kkk (userid,ename,deptno) select empno, ename, deptno from emp where deptno=10; 我认为这是错的,可是却是对的。为什么这里不需要values?求解?
展开
2个回答
展开全部
首先第一个insert语句:
insert into kkk (userid,ename,deptno) values (select empno, ename, deptno from emp where deptno=10);
这个语句有错误是因为values后面的这个Select语句返回时可能返回多行,insert语句是一行一行向数据库中插入,所以会报错。
而第二个insert语句:
insert into kkk (userid,ename,deptno) select empno, ename, deptno from emp where deptno=10;
语法是这么规定的。
insert into kkk (userid,ename,deptno) values (select empno, ename, deptno from emp where deptno=10);
这个语句有错误是因为values后面的这个Select语句返回时可能返回多行,insert语句是一行一行向数据库中插入,所以会报错。
而第二个insert语句:
insert into kkk (userid,ename,deptno) select empno, ename, deptno from emp where deptno=10;
语法是这么规定的。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询