首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >[oracle] 生成随机数据

[oracle] 生成随机数据

作者头像
master336
发布2026-06-15 19:19:02
发布2026-06-15 19:19:02
1370
举报

使用存储过程生成任意数量的随机数据

涉及到的数据类型包括: number、long、varchar2、date、timestamp 基于以下sql,可以修改存储过程中间部分用来填充其他表格,数据格式处理可以参照本sql

代码语言:javascript
复制
/** 
*  创建序列,用于获得特征数据
*/
create sequence mock_data_seq 
       minvalue 1
       start with 1
       increment by 1
       cache 100;
/**
*  创建数据库表
*/
create table tab_mock_data (
id number,
serno long,
username varchar2(50),
birthdate date,
sex number(1),
amount number(19,6),
tag varchar2(20),
remark varchar2(200),
inputdate timestamp
);
/**
*  创建存储过程
*/
create or replace procedure mockdatagenertator(maxrecords in number :=100) is
i number :=1;
begin
  for i in 1..maxrecords
  loop
   insert into  tab_mock_data
   VALUES(mock_data_seq.NEXTVAL,i,'测试数据',SYSDATE-(i/24 + i/24/3600), mod(i,3),dbms_random.random/10000,'std','备注',current_timestamp);
  end loop;
  commit;
  dbms_output.put_line(maxrecords||' insert done');
end mockdatagenertator;

-- set serveroutput on; 
-- 执行,产生数据量通过参数指定 
call mockdatagenertator(1000);
-- 查询数据
select * from tab_mock_data;

--- 清理数据
drop sequence mock_data_seq;
drop table tab_mock_data;
drop procedure  mockdatagenertator;

批量创建表

代码语言:javascript
复制
declare
  maxtablecount number;
begin
  maxtablecount := 10;
  while maxtablecount > 0 loop
  
    execute immediate '
create table tab_mock_data' || maxtablecount || ' (
        id number,
        serno long,
        username varchar2(50),
        birthdate date,
        sex number(1),
        amount number(19,6),
        tag varchar2(20),
        remark varchar2(200),
        inputdate timestamp
        )';
    maxtablecount := maxtablecount - 1;
  end loop;
end;
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2026-06-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 使用存储过程生成任意数量的随机数据
  • 批量创建表
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档