INSERT INTO 表名 SELECT 语句

Connected to Oracle Database 11g Enterprise Edition Release 11.2.0.1.0
Connected as scott

 

CREATE TABLE 表名 AS SELECT 语句

SQL> create table dept2 as select * from dept;
 
Table created

SQL> insert into dept2 select * from dept;
 
4 rows inserted
 
SQL> select * from dept;
 
DEPTNO DNAME          LOC
------ -------------- -------------
    10 ACCOUNTING     NEW YORK
    20 RESEARCH       DALLAS
    30 SALES          CHICAGO
    40 OPERATIONS     BOSTON
 
SQL> select * from dept2;
 
DEPTNO DNAME          LOC
------ -------------- -------------
    10 ACCOUNTING     NEW YORK
    20 RESEARCH       DALLAS
    30 SALES          CHICAGO
    40 OPERATIONS     BOSTON
    10 ACCOUNTING     NEW YORK
    20 RESEARCH       DALLAS
    30 SALES          CHICAGO
    40 OPERATIONS     BOSTON
 
8 rows selected
  
SQL> insert into dept2 select DEPTNO, DNAME, LOC, LOC from emp;
 
ORA-00913: too many values

SQL> insert into dept2 select deptno from dept;
 
ORA-00947: not enough values
 
SQL> delete from dept2;
 
8 rows deleted

SQL> alter table dept2 modify DNAME number;
 
Table altered

SQL> insert into dept2 select * from dept;
 
ORA-01722: invalid number

 

由上面的使用 INSERT INTO 表名 SELECT 语句可以看出:

    1:结果集中列的个数必须与插入表一致;

    2: 结果集中列的类型必须与插入表一致;

    3: 当 where 条件不满足时,不插入任何数据;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值