文章转自:http://www.linuxidc.com/Linux/2012-09/70984.htm

在Oracle中,将一张表的数据复制到另外一个对象中。通常会有这两种方法:insert into select  和 select into from。

前者可以将select 出来的N行(0到任意数)结果集复制一个新表中,后者只能将"一行"结果复制到一个变量中。这样说吧,select into是PL/SQL language 的赋值语句。而前者是标准的SQL语句。

做一个简单测试,我们就可以很容易地看出两者的差别。

首先,我们创建两个表,一个作为源表,一个作为目标表。

create table t_source(
id number primary key,
testname varchar2(20),
createtime date,
flag varchar2(10)
);   create table t_target(
id number primary key,
testname varchar2(20),
createtime date,
flag varchar2(10)
);  

接着,插入测试数据

insert into t_source values(1,'测试数据1....1',sysdate-2,'N');
insert into t_source values(2,'测试数据1....2',sysdate-2,'N');
insert into t_source values(3,'测试数据1....3',sysdate-2,'N');
commit;  

测试insert into select 操作

insert into test2 select * from t_source where id=1;
commit;  

测试select into 操作
因为select into是一个plsql语言中的复制语句,和:=实现的目标一样。

create or replace procedure sp_sync_test is  aa varchar2(100);   v_record t_source%rowtype;
begin  select t1.testname into aa from t_source t1 where id = 1;   dbms_output.put_line('普通变量 t1.testname= ' || aa);   select t1.* into v_record from t_source t1 where id = 1;   dbms_output.put_line('记录变量 t1.testname= ' || v_record.testname);   end; 

这里增加了原始类型的变量和记录类型的变量,便于大家理解。

注:最后加一点,如果想创建一个和已经存在的表相同的表,可以使用如下方法:

create table test as select * from emp;

//清除数据
truncate table test;

Oracle中insert into select和select into的区别相关推荐

  1. oracle中的select into,Oracle中insert into select和select into的用法

    Oracle中insert into select和select into的用法 两张表进行数据的拷贝,最常用的拷贝语句是: insert into select 和select into from ...

  2. oracle数据库 append,oracle中insert,copy,insert append执行对比

    oracle中insert,copy,insert append执行对比 还是由于迁移数据库,测试了insert,copy,insert append的执行速度. 环境:oracle9i向oracle ...

  3. oracle数据库insert into,oracle中insert into用法 oracle中insert如何带条件添加数据?

    oracle insert into 脚本怎么写 INSE INTO BOOK(bookid,name,price) VALUES('100123','oracle ',54); 或者 INSE IN ...

  4. 【DB笔试面试766】在Oracle中,RAC、DG和OGG的区别有哪些?

    ♣ 题目部分 在Oracle中,RAC.DG和OGG的区别有哪些? ♣ 答案部分 (一)什么是高可用? 高可用(High Availability,HA)也可以称为高可用性或高可用环境.HA是分布式系 ...

  5. 添加的oracle语句,Oracle中Insert语句的总结

    在oracle中,insert语句的使用: 1.insert into 表1(列名1,列名2,--) values(值1,值2,--) 2.insert into 表1(列名1,列名2,--) sel ...

  6. oracle的insert写法,Oracle中Insert语句的总结

    在Oracle中,insert语句的使用: 1.insert into 表1(列名1,列名2,--) values(值1,值2,--) 2.insert into 表1(列名1,列名2,--) sel ...

  7. oracle中insert into 用法

    在oracle中,insert语句的使用: 1.insert into 表1(列名1,列名2,--) values(值1,值2,--) 2.insert into 表1(列名1,列名2,--) sel ...

  8. 创建表结构相同的表,表结构相同的表之间复制数据,Oracle 中 insert into XXX select from 的用法...

    /**1. 用select 创建相同表结构的表*/ create table test_tbl2 as select * from test_tbl1 where 1<>1; /**   ...

  9. insert执行时oracle如何处理,ORACLE中Insert时字符处理

    在默认情况下,ORACLE允许用户在表字段里使用&字符和其他一些特殊字符. SQL> select * from v$version; BANNER ------------------ ...

最新文章

  1. 使用Nomad构建弹性基础架构:重新启动任务
  2. [转]浅谈浏览器插件检测 和自定义协议的支持
  3. 97 岁诺奖得主的励志人生:本科学文学,博士转物理,54 岁才开始锂电池研究...
  4. 硬件工程师如何成为焊接界的高手
  5. C# 观察者模式 以及 delegate 和 event
  6. repo-话说软件详细设计工具
  7. 区块链相关问题 理解
  8. kubernetes视频教程笔记 (8)-资源类型
  9. 今日头条信息流 - 工具菜单详解
  10. R语言实战——单个总体均值的区间估计
  11. VSCode连接远程服务器
  12. linux桌面鼠标可动 但点其他,电脑鼠标能动但点不了的两种解决方法
  13. python 0基础如何做出雷霆战机?【源码送上】
  14. Elasticsearch集群扩容踩坑记录
  15. MySQL卸载干净的全过程
  16. redis客户端predis介绍
  17. 全国计算机四级嵌入式系统开发工程师
  18. CSS核心内容:标准流、盒子模型、浮动、定位
  19. 线性高斯反问题的解--最大似然法
  20. Redis常见性能问题和解决办法

热门文章

  1. 面试题2021-2-24
  2. Shell脚本——入门
  3. 「作文素材详解」写作必知篇:语言优美不是作文第一要求
  4. 超详细MFS网络分布式文件系统
  5. [算法总结] 13 道题搞定 BAT 面试——字符串
  6. 如何安装Genymotion虚拟机以及Genmotion的eclipse插件
  7. 在win server 2003上安装SQL Server 2008的步骤
  8. 利用VMware Infrastructure SDK编程控制虚拟机集群(3)
  9. simulink显示多个数据_如何在 Simulink 中使用 PID Tuner 进行 PID 调参?
  10. python动态映射_sqlalchemy动态映射