pl/sql declare loop if
Posted chenzechao
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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的主要内容,如果未能解决你的问题,请参考以下文章