plsql创建测试表-使用begin end初始化表

oracle 专栏收录该内容
7 篇文章 0 订阅

2019-05-20 1348 星期一
1.创建表结构

create table t_person(
id varchar2(32) primary key, --主键uuid
name varchar2(32), --姓名
age int ,--年龄
sex char(1),--姓名 0=男,1=女
birthday date,--出生日期
create_date date,--创建时间
create_by varchar2(32),--创建人
update_date date,--修改时间
update_by varchar2(32)--修改人
);

2.初始化0

----------方法0,begin ------------
declare
 total_number int :=10;
 i int:=1;
 v_sql varchar2(500):='';--执行的sql
 v_dyh varchar2(500):='''';--单引号
 v_exex int:=1;
 v_date varchar2(100):= '2005-01-01 13:14:20';
 v_date_formate varchar2(100):='yyyy-MM-dd HH24:mi:ss';
 v_to_date varchar2(100):= 'to_date('''||v_date||''','''||v_date_formate||''')';
begin
   v_sql := 'selct '''' from dual';
   dbms_output.put_line(v_sql);
   -- selct '' from dual   
   v_sql := 'selct to_date('''||v_date||''','''||v_date_formate||''') from dual';
   dbms_output.put_line(v_sql);
   --selct to_date('2005-01-01 13:14:20','yyyy-MM-dd HH24:mi:ss') from dual
     v_sql := 'selct '||v_to_date||' from dual';
    dbms_output.put_line(v_sql);
    --selct to_date('2005-01-01 13:14:20','yyyy-MM-dd HH24:mi:ss') from dual
end;
----------方法0,end ------------

2.初始化1

----------方法一,begin ------------
declare
 total_number int :=10;
 i int:=1;
begin
   dbms_output.put_line('init............total_number = '|| total_number);
   for i in 1..total_number loop
     dbms_output.put_line('for..... '|| i);
     insert into t_person(id,name,age,sex,birthday,create_date,create_by,update_date,update_by)                
             values (sys_guid(),('张'||i),(i+10)
             ,'0',to_date('2005-01-01 13:14:20','yyyy-MM-dd HH24:mi:ss')
             ,sysdate,'plsql',null,null);
   end loop;  
   commit;
   dbms_output.put_line('插入完成success!');
end;
----------方法一,end ------------

2.初始化2

----------方法2,begin ------------
declare
 total_number int :=10;
 i int:=1;
 v_sql varchar2(500):='';--执行的sql
 v_dyh varchar2(500):='';--单引号
 v_exex int:=1;
begin
   dbms_output.put_line('init数据.......total_number = '|| total_number);
   for i in 1..total_number loop  
     if v_exex = 1 then
       /*
       for...1,sql = insert into t_person(id,name,age,sex,birthday,create_date,create_by,update_date,update_by)
             values (sys_guid(),('张'||1),(1+10)
             ,'0',to_date('2005-01-01 13:14:20','yyyy-MM-dd HH24:mi:ss')
             ,sysdate,'plsql',null,null)
       */
        v_sql := 'insert into t_person(id,name,age,sex,birthday,create_date,create_by,update_date,update_by)                
             values (sys_guid(),('''||''||'''||'||i||'),('||i||'+10)
             ,'''||'0'''||',to_date('''||'2005-01-01 13:14:20'''||','''||'yyyy-MM-dd HH24:mi:ss'''||')
             ,sysdate,'''||'plsql'''||',null,null)';
     else
       v_sql := 'select sysdate from dual';
     end if;        
     dbms_output.put_line('for...'|| i || ',sql = ' || v_sql);
     execute immediate v_sql;
   end loop;  
   commit;
   dbms_output.put_line('插入完成success!');
end;
----------方法2,end ------------

2.初始化3

----------方法3,begin ------------
declare
 total_number int :=10;
 i int:=1;
 v_sql varchar2(500):='';--执行的sql
 v_dyh varchar2(500):='''';--单引号
 v_exex int:=1;
 v_date varchar2(100):= '';
 v_date_formate varchar2(100):='yyyy-MM-dd HH24:mi:ss';
 v_to_date varchar2(100):= '';
begin
   dbms_output.put_line('init数据.......total_number = '|| total_number);
   for i in 1..total_number loop  
     if v_exex = 1 then
       v_date    := '2005-01-01 13:14:20';
       v_to_date := 'to_date('''||v_date||''','''||v_date_formate||''')';       
       v_sql     := 'insert into t_person(id,name,age,sex,birthday,create_date,create_by,update_date,update_by)                
             values (sys_guid(),(''张''||'||i||'),('||i||'+10),''0'','||v_to_date||', sysdate,''plsql'',null,null)';             
     else
       v_sql := 'select sysdate from dual';
     end if;        
     dbms_output.put_line('for...'|| i || ',sql = ' || v_sql);
     execute immediate v_sql;
   end loop;  
   commit;
   dbms_output.put_line('插入完成success!');
end;
----------方法3,end ------------
  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值