pl/sql培训练习题
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')
 
相关新闻>>
- 发表评论
-
- 最新评论 更多>>