Oracle数据库中把select语句中查询的记录怎么批量插入数据库中?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle数据库中把select语句中查询的记录怎么批量插入数据库中?相关的知识,希望对你有一定的参考价值。
按照如下方法:
1、先确保select语句的结果正确。
2、写如下语句,如将emp表中deptno为10的数据放入到新表emp_t中。
create table emp_t as select * from emp where deptno=10;3、执行完毕后,emp_t表中的数据如下:
注意:查询结果要与要插入的表的属性列一致。
可以参考:http://hualong.javaeye.com/blog/692984本回答被提问者采纳 参考技术B insert into 表1 select * from 表2; 参考技术C insert into table1_name select * from table2_name 参考技术D example:create table temp as select * from mytable
Oracle:select into 查询没有记录的解决办法
在数据库编程中,select into 语句可以将数据库的某些值赋值给程序的变量,使用起来非常方便。但很多时候也会遇到查询出来没有记录的情况,这时程序会出错。
可以使用
exception
when NO_DATA_FOUND then
但是如merge into using 查不到时可以使用该方法;
merge into web_user_vip wv using (select vip_type,id from( select nvl(max(vip_type),0)vip_type ,nvl(max(id),0)id from web_user_vip where user_id = v_user_id and source = 2 and status =1 and vip_type = v_vip_type)where rownum = 1)e on (e.vip_type = wv.vip_type) when matched then UPDATE SET wv.expire_time = v_expire_end_date where wv.id = e.id when not matched then insert(id,user_id,vip_type,expire_time,create_time,source,enterprise_id,status) VALUES(xshtest.WEB_USER_VIP_SEQ.NEXTVAL,v_user_id,v_vip_type,v_expire_end_date,sysdate,2,v_enterprise_id,1);
看下面示例:
select 没有数据的时候:
select t.prj_type_id into :id from PRJ_C_TYPE t where t.prj_type_name=‘abc‘
使用聚合函数后:
select nvl(max(t.prj_type_id),0) into :id from PRJ_C_TYPE t where t.prj_type_name=‘abc‘
以上是关于Oracle数据库中把select语句中查询的记录怎么批量插入数据库中?的主要内容,如果未能解决你的问题,请参考以下文章
Oracle中,为啥同样的SELECT查询语句,加了CREATE TABLE AS后速度更快了?
oracle中如何只查询一条复合条件的记录,即查到一条记录就返回