首页 > 代码库 > pl/sql declare loop if
pl/sql declare loop if
-- 1.判断表是否存在,如果存在则drop表 -- 2.创建表 -- 3.插入1W条数据 -- 4.每1K条commit一次 declare v_table varchar2(222):=‘STUDENT‘; --表名 v_table_exists number:=0; --如果大于0,则表存在 v_sql_create varchar2(2222); --create table sql v_number number:=500000; --插入的数据 v_id number:=0; --id字段 v_age number:=100000; --age字段 v_i number:=0; --记录插入的条数 v_start_time varchar2(22); --执行命令开始时间 v_end_time varchar2(22); --执行命令结束时间 v_exec_time varchar(22); begin --判断表是否存在,如果存在最删除 select to_char(sysdate,‘yyyy-mm-dd hh24:mi:ss‘) into v_start_time from dual; select count(1) into v_table_exists from tab where tname=upper(‘student‘); if v_table_exists > 0 then execute immediate ‘drop table ‘||v_table||‘ purge‘; dbms_output.put_line(‘drop table ‘||v_table||‘ sucessfuly‘); else dbms_output.put_line(‘table ‘||v_table|| ‘ is not exists‘); end if; --create table student v_sql_create:=‘create table ‘||v_table||‘ (id number,age number)‘; execute immediate v_sql_create; commit; -- insert data to student loop exit when v_number<=0; v_number:=v_number-1; insert into student values(v_id,v_age); v_id:=v_id+1; v_age:=v_age+1; v_i:=v_i+1; --commit / 10000 line data if mod(v_i,10000)=0 then select to_char(sysdate,‘yyyy-mm-dd hh24:mi:ss‘) into v_exec_time from dual; dbms_output.put_line(v_i||‘ ‘||v_exec_time); commit; end if; end loop; select to_char(sysdate,‘yyyy-mm-dd hh24:mi:ss‘) into v_end_time from dual; dbms_output.put_line(‘execute sucess ‘||v_start_time||‘ -> ‘||v_end_time); end; /
pl/sql declare loop if
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。