oracle insert into 批量(oracle怎么批量insert数据)
本文目录
- oracle怎么批量insert数据
- oracle insert into 批量慢
- insert into方法一次性插入所有的数据吗
- oracle存储过程怎样批量插入新数据
- Oracle 批量插入数据怎么做
- oracle到底能不能insert into 多个values
oracle怎么批量insert数据
80万条,直接执行不就可以了吗?比如你的数据在tablename2中。insert into tablename1(c1,c2,...) slect * from tablename2(ca,cb,...);不知道你的数据现在在哪里,如果在别处的话,就用代码呗。或者用procedure吧。可以读一条插一条,80万数据也不是很多呀。代码大概这样吧:sprintf(str_sql,insert into tablename1(c1,c2,c3,..) values (:v1,:v2,:v3,..));EXEC SQL prepare s1 from :str_sql;EXEC SQL EXECUTE s1 USING a1,a2,a3...;不知道我说的对你有用不,但愿能帮助你,就是担心我没有搞清楚,是要直接在PLSQL中执行的话,我觉得就直接插入就可以了呀。
oracle insert into 批量慢
使用Oracle的SQLLoader进行导入。首先在一个.ctl文件中写明要导入数据文件的名称,路径和格式,还有一些简单的规则。之后,在Oracle的控制台,使用sqlldr命令批量导入数据。比insert语句速度快很多。
insert into方法一次性插入所有的数据吗
在oracle中 insert into 《table》 values (.....)一次只能插入一条数据,如果想一次插入多条数据可以使用子查询来实现,就是把一个表里的一定条件的数据插入到另一个表中 insert into 《tableA》 select column from tableB where ....这样做 但要注意insert的列的数据类型和个数要与子查询的列的类型和个数要相同。
oracle存储过程怎样批量插入新数据
需要生成的SQLinsert into TMP_UPSTATE_CASEKEY values(’TMP0000001’, 1, sysdate);存储过程实现create or replace procedure proc_casekey_upstate as casekey char(14); begin for i in 1..10000000 loop casekey := ’TMP’||lpad(i,7,0); -- TMP0000001 insert into TMP_UPSTATE_CASEKEY values(casekey, 1, sysdate); end loop; commit; end; begin proc_casekey_upstate(); end;测试发现生成一千万条数据用了14分钟左右,性能还是可以了,如果先去掉TMP_NUM_STATUS_ID的外键估计更快。或者:insert into TMP_UPSTATE_CASEKEY select ’TMP’||LPAD(rownum,7,0),1,sysdate from dual connect by level 《= 1000000;
Oracle 批量插入数据怎么做
一个例子你看看
create or replace procedure p_test is v_day varchar2(20); nextday varchar2(20); cur_value number; yes_value number; thismonth_totalvalue number; lastmonth_totalvalue number; i number; tempday varchar2(20); day_count integer;begin execute immediate ’truncate table DM_KPID_IW_AREA’; v_day := ’20070101’; -- lastmonth_totalvalue := 0; for k in 0 .. 11 loop tempday := to_char(add_months(to_date(v_day, ’yyyymmdd’), k), ’yyyymmdd’); yes_value := 0; thismonth_totalvalue := 0; -- 这里好像有一个比较方便的函数吧,记不清了 day_count := to_char(last_day(to_date(tempday, ’yyyymmdd’)), ’dd’); for i in 0 .. day_count - 1 loop nextday := to_char(to_date(tempday, ’yyyymmdd’) + i, ’yyyymmdd’); cur_value := trunc(dbms_random.value(1, 100), 0); thismonth_totalvalue := thismonth_totalvalue + cur_value; begin select t.thismonth_totalvalue into lastmonth_totalvalue from dm_kpid_iw_area t where t.day_id = --考虑如3月30日之类这样的情况,前一月没有对应的日子的情况, --如果此时上月值为0的话,则应该为: --to_char(add_months(to_date(nextday, ’yyyymmdd’), -1), --’yyyymm’) || substr(nextday, 7, 2); to_char(add_months(to_date(nextday, ’yyyymmdd’), -1), ’yyyymmdd’); exception when no_data_found then lastmonth_totalvalue := 0; end; insert into dm_kpid_iw_area (day_id, cur_value, yes_value, thismonth_totalvalue, lastmonth_totalvalue) values (nextday, cur_value, yes_value, thismonth_totalvalue, lastmonth_totalvalue); yes_value := cur_value; commit; end loop; end loop;end;
oracle到底能不能insert into 多个values
题主是想问一个insert ino能不能一次插入多条语句吧?答案是可以的,给你个参考:insert into test(id,name,age,create_by,create_date,update_by,update_date)(select sys_guid(), ’Linda’,16,’admin’,sysdate, ’admin’, sysdate from dual)union all(select sys_guid(), ’Harry’,18,’admin’,sysdate, ’admin’, sysdate from dual)union all (select sys_guid(), ’Jack’,19,’admin’,sysdate, ’admin’, sysdate from dual)union all(select sys_guid(), ’Lucy’,17,’admin’,sysdate, ’admin’, sysdate from dual)
更多文章:
捡的华为跳过激活手机(华为手机怎么跳过激活锁 华为强制解锁跳过激活锁)
2024年6月27日 08:01
个人简历模板word格式下载(中文电子版个人简历下载word格式)
2024年7月23日 18:38
trapcodeform(AE插件Trapcode form怎么破解啊还有为什么我AE渲染只能渲染7秒而且我AE每次打开都要重新注册)
2024年5月23日 07:12
unidrv hlp下载(安装打印机提示安装程序无法复制文件unidrv hlp)
2024年5月19日 12:58
迷你世界体验服下载无限迷你币(无限迷你币无限迷你豆的迷你世界怎么下载)
2024年6月17日 18:39