pl/sql培训练习题

来源:网络 责任编辑:栏目编辑 发表时间:2013-07-01 18:05 点击:

 

1、 写一个存储过程,向表中随机插入1000条记录

SerialNo:使用序列方式,自增长。

Filepath:使用随机插入6个字母

Partid: 使用随机4位数字

StaffNo:从YTCZ060001……. YTCZ060020 中随机抽取

RecordTime:从2011年8月1日之前的6个月中随机抽取。

2、写一个程序块,循环调用500次此存储过程,保证数据表中存储50万条记录。

3、写一个存储过程,删除3个月前的数据。

4、写一个job,每隔30天凌晨2点整,系统执行“删除3个月前数据”的存储过程。

--下面的结果仅供参考:

(SerialNo:使用序列方式,自增长。)

1.创建一个序列

-- Create sequence

  create sequence seq_class

  minvalue 1

  maxvalue 100000000000

  start with 201101

  increment by 1

  cache 20;

.序列的使用

   select seq_class.nextval from dual;   --使用下个值

   select seq_class.currval from dual;   --使用当前值

.删除序列

  drop SEQUENCE seq_class;

2.录音表:

create table recordfile(

       SerialNo   VARCHAR2(200) primary key,

       FilePath   VARCHAR2(400),

       Partid     Varchar2(40),

       StaffNo   VARCHAR2(100),

       RecordTime DATE

);

3.存储过程,向表中随机插入1000条记录

create or replace procedure p_random_corder

 is

  MAXRECORDS CONSTANT INT :=1000;

  I INT :=2;

BEGIN

  FOR I IN 2..MAXRECORDS LOOP

    insert into recordfile(serialno,filepath,partid,staffno,recordtime)

    values('2011'||seq_class.nextval,

        upper(chr(trunc(dbms_random.value(97,122))))||

        upper(chr(trunc(dbms_random.value(97,122))))||

        upper(chr(trunc(dbms_random.value(97,122))))||

        upper(chr(trunc(dbms_random.value(97,122))))||

        upper(chr(trunc(dbms_random.value(97,122))))||

        upper(chr(trunc(dbms_random.value(97,122)))),

        'YTCZ'||trunc(dbms_random.value(60001,60020)),

        floor(abs(trunc(dbms_random.value(1000,9999)))) ,

     to_date('2011-0'||

     case when  trunc(dbms_random.value(2,8))=2 then '2'||'-'||floor(abs(trunc(dbms_random.value(1,28))))

             when  trunc(dbms_random.value(2,8))=3 then '3'||'-'||floor(abs(trunc(dbms_random.value(1,31))))

             when  trunc(dbms_random.value(2,8))=4 then '4'||'-'||floor(abs(trunc(dbms_random.value(1,30))))

             when  trunc(dbms_random.value(2,8))=5 then '5'||'-'||floor(abs(trunc(dbms_random.value(1,31))))

             when  trunc(dbms_random.value(2,8))=6 then '6'||'-'||floor(abs(trunc(dbms_random.value(1,30))))

             when  trunc(dbms_random.value(2,8))=7 then '7'||'-'||floor(abs(trunc(dbms_random.value(1,31))))

     end,'yyyy-mm-dd')

   

    相关新闻>>

    发表评论
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    用户名: 验证码:点击我更换图片
    最新评论 更多>>

    推荐热点

    • sql常见面试题
    • SQL SERVER 2005性能之跟踪
    • SQL编程(一)
    • LINUX上RMAN自动备份脚本
    • sql server面试题
    • 如何将多个SQL查询统计结果一次显示出来
    • 浅谈SQL Server中的事务日志(三)----在简单恢复模式下日志的角色
    • SQL小技巧系列 --- 行转列合并
    • sql server 列转行
    网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
    Copyright © 2008-2015 计算机技术学习交流网. 版权所有

    豫ICP备11007008号-1