向oracle数据库中插入50000条记录,每条记录含7个字段,总个50000条打成zip大概1.3M,一般会用多少小时

向oracle数据库中插入50000条记录,每条记录含7个字段,总个50000条打成zip大概1.3M,一般会用多少小时,第1张

如果你每条记录都是 13M。。。。估计会比较久。。

如果你50000条记录总共13M,数据库所在服务器再烂也就几分钟吧。。。就算一小时好了。。。移动不是说,不足XX就按照XX算么。。。哈哈

实际上存储过程向表中插入数据和sql执行的区别是不大的,只不过是存储过程是用loop等循环插入,之后顺序执行sql语句,不用命令行执行。

CREATE OR REPLACE PROCEDURE insert_data_4_pressure_3

 is

  --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字段是自动增长的,该怎么向数据库中等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10163581.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存