如果你每条记录都是 13M。。。。估计会比较久。。
如果你50000条记录总共13M,数据库所在服务器再烂也就几分钟吧。。。就算一小时好了。。。移动不是说,不足XX就按照XX算么。。。哈哈
实际上存储过程向表中插入数据和sql执行的区别是不大的,只不过是存储过程是用loop等循环插入,之后顺序执行sql语句,不用命令行执行。
CREATE OR REPLACE PROCEDURE insert_data_4_pressure_3is
--Result1 VARCHAR2(50);
VAR_num number;
begin
VAR_num:=1;
while
VAR_num< 1000000
LOOP
insert into rp_trans_log_day
(trans_time,
trans_province,
trans_type,
score_range,
rule_name,
trans_num)
select to_date('2013/10/29', 'yyyy-mm-dd'),
round(dbms_randomvalue(1, 300)) || '省',
round(dbms_randomvalue(1, 800)) || '类型',
round(dbms_randomvalue(1, 100)) || '风险分值',
round(dbms_randomvalue(1, 300)) || '规则名称',
'1'
from dual;
commit;
VAR_num:=VAR_num+1;
end loop;
end insert_data_4_pressure_3;
Oracle 使用 序列号 + 触发器 实现自增的例子如下:
-- 这个是测试的序列号
SQL> CREATE SEQUENCE test_sequence2
2 increment by 1 -- 每次递增1
3 start with 1 -- 从1开始
4 nomaxvalue -- 没有最大值
5 minvalue 1 -- 最小值=1
6 NOCYCLE; -- 不循环
Sequence created
-- 这个是测试的表
SQL> CREATE TABLE test_create_tab2 (
2 id INT,
3 val VARCHAR(10),
4 PRIMARY KEY (id)
5 );
Table created
-- 这个是测试的触发器
SQL> CREATE OR REPLACE TRIGGER BeforeTestCreate2Insert
2 BEFORE INSERT ON test_create_tab2
3 FOR EACH ROW
4 BEGIN
5 SELECT test_sequence2nextval INTO :newid FROM dual;
6 END;
7 /
Trigger created
-- 下面是测试插入的处理
SQL> INSERT INTO test_create_tab2(val) VALUES ('NO id');
1 row created
SQL> INSERT INTO test_create_tab2(id, val) VALUES (1, 'id no use');
1 row created
SQL> SELECT FROM test_create_tab2;
ID VAL
---------- --------------------
1 NO id
2 id no use
1、如果两个表相同列的顺序都一致,Version字段在表A的最后一列,那就好办了。
alter table b add(s varchar(20) default '');
insert into a select from b;
我也很懒,所以想出了这个方法。
2、如果Version字段在中间,其它字段的顺序都一样,可以先把Version字段Drop掉,再Add上。然后按照第一种情况处理。
3、如果都不符合就只能乖乖地写字段名称了。o(∩_∩)o
按照如下方法:
1、先确保select语句的结果正确。
2、写如下语句,如将emp表中deptno为10的数据放入到新表emp_t中。
create table emp_t as select from emp where deptno=10;3、执行完毕后,emp_t表中的数据如下:
insert into stuinfo(id,name)
select 1,'1'
union all
select 2,'2'
union all
select 3,'3'
这样把要插入的数据用union 组合起来就可以了!
直接insert into tab(xx,xxx) values 这种方式一条一条的来,肯定插入不进去的。
不过,你可以采用
insert into tab(xx,xxx) select from tab2这种方式,以结果集的方式插入,应该问题不大
前提是你的tab2的数据要够数据量
不知道你具体的业务,你可以曲线通过我下面说的方案来做,修改一下。
海枫科技
以上就是关于向oracle数据库中插入50000条记录,每条记录含7个字段,总个50000条打成zip大概1.3M,一般会用多少小时全部的内容,包括:向oracle数据库中插入50000条记录,每条记录含7个字段,总个50000条打成zip大概1.3M,一般会用多少小时、oracle数据库如何利用存储过程向表中添加数据、使用java向oracle数据库中添加记录时,有一个id字段是自动增长的,该怎么向数据库中等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)