zoukankan      html  css  js  c++  java
  • Oracle 中随机显示 多少行的数据 & Oracle 建立临时表

    --建立临时表:
    create global temporary table temp  on commit preserve rows [as select * from drv where 1=2]  --session 级别 对话关闭后消失
    create global temporary table temp  on commit delete rows [as select * from drv where 1=2] --transaction 级别 提交后消失

    create or replace procedure pro_show(rn in number)

    as
    var_num number(10);
    var_rownum number(5);
    var_i number(2);
    var_flag number(2);
    begin
     select count(*) into var_num from drv;
     var_i:=1;
     
     delete  from  temp;--session 级别 程序调用可去掉该行【truncate table temp 报错?】
     commit;
     
     for i in 1..rn loop
     var_rownum:=ceil(dbms_random.value * var_num);--随机行数 向上转成整数
     select count(*) into var_flag from temp where id = var_rownum;
     
     while (var_flag > 0 ) loop
     var_rownum:=ceil(dbms_random.value * var_num);-- 随机过的不在随机 
     select count(*) into var_flag from temp where id = var_rownum;
     end loop;  
     
     insert into temp select id,name,car,carno from (select drv.* ,rownum rn from drv)t where t.rn = var_rownum; 
     end loop; 
     if (sql%rowcount > 0) then
       commit;
     end if;
    end pro_show;
  • 相关阅读:
    CMDB表结构设计
    mysql数据库密码
    web之提取状态码
    ELK的启动脚本
    ELK的轻量级搭建使用
    liunx安装JDK
    liunx的urandom生成随机字符
    vim快捷键
    升级系统的python程序
    Mysql的进阶小记
  • 原文地址:https://www.cnblogs.com/leonkobe/p/3324194.html
Copyright © 2011-2022 走看看