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;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/544829.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ThreadLocal中的3个大坑,内存泄露都是小儿科!

我在参加Code Review的时候不止一次听到有同学说:我写的这个上下文工具没问题,在线上跑了好久了。其实这种想法是有问题的,ThreadLocal写错难,但是用错就很容易,本文将会详细总结ThreadLocal容易用错的三个坑&#xff…

java中为按钮添加图片_如何在Java中为字符串添加双引号?

java中为按钮添加图片In Java, everything written in double-quotes is considered a string and the text written in double-quotes is display as it is. 在Java中, 双引号中的所有内容均视为字符串,而双引号中的文本按原样显示。 Suppose, if we wa…

基于.Net的单点登录(SSO)解决方案

为什么80%的码农都做不了架构师?>>> 前些天一位朋友要我帮忙做一单点登录,其实这个概念早已耳熟能详,但实际应用很少,难得最近轻闲,于是决定通过本文来详细描述一个SSO解决方案,希望对 大家有所…

Ajax在请求数据时显示等待动画遮罩

/*** 等待提醒 开始 *********************************************************************************************** -yzy -20150408 说明:在Ajax请求数据的时候,显示等待界面*/// 1、这里显示等待框$(#YWaitDialog).show();// 2、这里进行ajax的请…

c语言 函数的参数传递示例_isgreaterequal()函数以及C ++中的示例

c语言 函数的参数传递示例C isgreaterequal()函数 (C isgreaterequal() function) isgreaterequal() function is a library function of cmath header, it is used to check whether the given first value is greater than or equal to the second value. It accepts two va…

在android中ScrollView嵌套ScrollView解决方案

文章转载自:http://www.jb51.net/article/33054.htm大家好,众所周知,android里两个相同方向的ScrollView是不能嵌套的,那要是有这样的需求怎么办,接下来为您介绍解决方法,感兴趣的朋友可以了解下大家好,众所…

Cucumber 入门一

(转自:http://www.cnblogs.com/jarodzz/archive/2012/07/02/2573014.html) 第一次看到Cucumber和BDD(Behavior Driven Development, 行为驱动开发),是在四年前。那时才開始工作,对软件測试工具相…

Python datetime astimezone()方法与示例

Python datetime.astimezone()方法 (Python datetime.astimezone() Method) datetime.astimezone() method is used to manipulate objects of datetime class of module datetime. datetime.astimezone()方法用于操作模块datetime的datetime类的对象。 It uses an instance …

Java中这7个方法,一不小心就用错了!

最近我们通过sonar静态代码检测,同时配合人工代码review,发现了项目中很多代码问题。除了常规的bug和安全漏洞之外,还有几处方法用法错误,引起了我极大的兴趣。我为什么会对这几个方法这么感兴趣呢?因为它们极具迷惑性…

java 标志一个方法为过时方法

使用 Deprecated 来标记方法 Deprecated//用来判断ip是否合法public boolean checkIp(String tempIp) {String regex "(25[0-5]|2[0-4]\\d|1\\d{2}|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d{2}|[1-9]?\\d)){3}"; // String regex2 "([1-9]|[1-9]\\\\d…

STL之顺序容器

顺序容器: vector:数组 list:链表 deque:双端数组 顺序容器适配器: stack:堆栈 queue:队列 priority_queue:优先级队列 deque是一个动态数组  deque与vector非常类似;  deque可以…

Java StringBuilder reverse()方法与示例

StringBuilder类reverse()方法 (StringBuilder Class reverse() method) reverse() method is available in java.lang package. reverse()方法在java.lang包中可用。 reverse() method is used to reverse this character sequence by the reverse of the sequence. reverse()…

这样设置,让你的 IDEA 好看到爆炸

今天这期我们来分享几个美化 IDEA 设置技巧,让你的 IDEA 与众不同。首先我们来看下 IDEA 默认设置,虽然不丑,但就是太单调,千篇一律。默认主题接着,我们来看下美化以后的界面,总体看起来是不是比默认好看了…

IMP-00002: 无法打开 D:\orcldat\test_20111024.dmp 进行读取,rman备份

文章转自:http://blog.csdn.net/wanglilin/article/details/6900633 首先,我的路径写错了,文件夹是orcldata我掉了个a。 其次,命令后添加 fully。 dos下随便哪个目录> [sql] view plaincopyprint? IMP username/pwddbname BU…

observable_Java Observable setChanged()方法与示例

observable可观察的类setChanged()方法 (Observable Class setChanged() method) setChanged() method is available in java.util package. setChanged()方法在java.util包中可用。 setChanged() method is used to set this Observable object status as changed. setChanged…

RabbitMQ 集群

2019独角兽企业重金招聘Python工程师标准>>> Clustering Guide A RabbitMQ broker is a logical grouping of one or several Erlang nodes, each running the RabbitMQ applicationand sharing users, virtual hosts, queues, exchanges, etc. Sometimes we refer …

使用uuid作为数据库主键,被技术总监怼了!

一、前言在日常开发中,数据库中主键id的生成方案,主要有三种数据库自增ID采用随机数生成不重复的ID采用jdk提供的uuid对于这三种方案,我发现在数据量少的情况下,没有特别的差异,但是当单表的数据量达到百万级以上时候&…

Android设置透明、半透明等效果

首先说明一点,关于透明的 Android 控件 background 问题,从转载来的文章看到最主要的一句有用的代码是: v.getBackground().setAlpha(100);//0~255透明度值 这里的 Alpha 值,实际上是 0-1 的取值范围。 以下内容转自&#xff…

Java Long类shortValue()方法与示例

长类shortValue()方法 (Long class shortValue() method) shortValue() method is available in java.lang package. shortValue()方法在java.lang包中可用。 shortValue() method is used to return the value denoted by this Long object converted to type short (by casti…

ThreadLocal不好用?那是你没用对!

作者 | 王磊来源 | Java中文社群(ID:javacn666)转载请联系授权(微信ID:GG_Stone)在 Java 中,如果要问哪个类使用简单,但用好最不简单?我想你的脑海中一定会浮现出一次词—…