Oracle中insert into select和select into的区别
文章转自: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的区别相关推荐
- oracle中的select into,Oracle中insert into select和select into的用法
Oracle中insert into select和select into的用法 两张表进行数据的拷贝,最常用的拷贝语句是: insert into select 和select into from ...
- oracle数据库 append,oracle中insert,copy,insert append执行对比
oracle中insert,copy,insert append执行对比 还是由于迁移数据库,测试了insert,copy,insert append的执行速度. 环境:oracle9i向oracle ...
- oracle数据库insert into,oracle中insert into用法 oracle中insert如何带条件添加数据?
oracle insert into 脚本怎么写 INSE INTO BOOK(bookid,name,price) VALUES('100123','oracle ',54); 或者 INSE IN ...
- 【DB笔试面试766】在Oracle中,RAC、DG和OGG的区别有哪些?
♣ 题目部分 在Oracle中,RAC.DG和OGG的区别有哪些? ♣ 答案部分 (一)什么是高可用? 高可用(High Availability,HA)也可以称为高可用性或高可用环境.HA是分布式系 ...
- 添加的oracle语句,Oracle中Insert语句的总结
在oracle中,insert语句的使用: 1.insert into 表1(列名1,列名2,--) values(值1,值2,--) 2.insert into 表1(列名1,列名2,--) sel ...
- oracle的insert写法,Oracle中Insert语句的总结
在Oracle中,insert语句的使用: 1.insert into 表1(列名1,列名2,--) values(值1,值2,--) 2.insert into 表1(列名1,列名2,--) sel ...
- oracle中insert into 用法
在oracle中,insert语句的使用: 1.insert into 表1(列名1,列名2,--) values(值1,值2,--) 2.insert into 表1(列名1,列名2,--) sel ...
- 创建表结构相同的表,表结构相同的表之间复制数据,Oracle 中 insert into XXX select from 的用法...
/**1. 用select 创建相同表结构的表*/ create table test_tbl2 as select * from test_tbl1 where 1<>1; /** ...
- insert执行时oracle如何处理,ORACLE中Insert时字符处理
在默认情况下,ORACLE允许用户在表字段里使用&字符和其他一些特殊字符. SQL> select * from v$version; BANNER ------------------ ...
最新文章
- 使用Nomad构建弹性基础架构:重新启动任务
- [转]浅谈浏览器插件检测 和自定义协议的支持
- 97 岁诺奖得主的励志人生:本科学文学,博士转物理,54 岁才开始锂电池研究...
- 硬件工程师如何成为焊接界的高手
- C# 观察者模式 以及 delegate 和 event
- repo-话说软件详细设计工具
- 区块链相关问题 理解
- kubernetes视频教程笔记 (8)-资源类型
- 今日头条信息流 - 工具菜单详解
- R语言实战——单个总体均值的区间估计
- VSCode连接远程服务器
- linux桌面鼠标可动 但点其他,电脑鼠标能动但点不了的两种解决方法
- python 0基础如何做出雷霆战机?【源码送上】
- Elasticsearch集群扩容踩坑记录
- MySQL卸载干净的全过程
- redis客户端predis介绍
- 全国计算机四级嵌入式系统开发工程师
- CSS核心内容:标准流、盒子模型、浮动、定位
- 线性高斯反问题的解--最大似然法
- Redis常见性能问题和解决办法
热门文章
- 面试题2021-2-24
- Shell脚本——入门
- 「作文素材详解」写作必知篇:语言优美不是作文第一要求
- 超详细MFS网络分布式文件系统
- [算法总结] 13 道题搞定 BAT 面试——字符串
- 如何安装Genymotion虚拟机以及Genmotion的eclipse插件
- 在win server 2003上安装SQL Server 2008的步骤
- 利用VMware Infrastructure SDK编程控制虚拟机集群(3)
- simulink显示多个数据_如何在 Simulink 中使用 PID Tuner 进行 PID 调参?
- python动态映射_sqlalchemy动态映射