zoukankan      html  css  js  c++  java
  • PostgreSql 函数

      DECLARE
        curParkingTime TIMESTAMP ;
        curLeavingTime TIMESTAMP;
            parkingSpaceIndexCode VARCHAR[];
    
        days INTEGER; --间隔天数
        duration INTEGER; -- 停车时长
        i INTEGER;
            plateNo VARCHAR; -- 车牌号
      BEGIN
        curLeavingTime = $2;
        --RAISE INFO ' aaa  aaa';
            --获取indexcode数组
        select ARRAY_AGG(indexcode) INTO parkingSpaceIndexCode from pms_parkingspace;
            if (array_length(parkingSpaceIndexCode, 1)>0) then
                i :=0;
                WHILE i < $1 LOOP
                    i := i+1;
                    for index in 1..array_length(parkingSpaceIndexCode, 1) loop
                        --得到停车时长和车牌5位随机数
                        select '浙A'|| trunc(random() * (99999-10000 + 1) + 10000) into plateNo;
                        duration = cast (random()*1000 as INTEGER);
                        --使leavingtime随机
                        curLeavingTime = curLeavingTime + cast(cast (random()*100 as INTEGER)|| 'min' as INTERVAL);
                        --leavingtime减去duration得到parkingtime
                        curParkingTime = curLeavingTime - cast( duration || 'min' as INTERVAL) ;
                        --RAISE NOTICE 'indexCode is %,plateNo is %',parkingSpaceIndexCode[index],plateNo;
                        INSERT INTO pms_parking_space_history(space_index_code,parking_time,leaving_time,parking_duration,plate_no) values(parkingSpaceIndexCode[index],curParkingTime,curLeavingTime,duration,plateNo);
                        
                    end loop;
                 
                    --使下次循环的日期递减
                 curLeavingTime = curParkingTime - INTERVAL '1 day';
    
                END LOOP;
            end if;
      END;
      

    执行

    select generate_history_data(2, '2016-11-30 10:10:00')

     导出后的建函数语句:

    CREATE OR REPLACE FUNCTION "public"."generate_history_data(loopcounts int4, enddate timestamp)"(loopcounts int4, enddate timestamp)
      RETURNS "pg_catalog"."void" AS $BODY$
      DECLARE
        curParkingTime TIMESTAMP ;
        curLeavingTime TIMESTAMP;
            parkingSpaceIndexCode VARCHAR[];
    
        days INTEGER; --间隔天数
        duration INTEGER; -- 停车时长
        i INTEGER;
            plateNo VARCHAR; -- 车牌号
      BEGIN
        curLeavingTime = $2;
        --RAISE INFO ' aaa  aaa';
            --获取indexcode数组
        select ARRAY_AGG(indexcode) INTO parkingSpaceIndexCode from pms_parkingspace;
            if (array_length(parkingSpaceIndexCode, 1)>0) then
                i :=0;
                WHILE i < $1 LOOP
                    i := i+1;
                    for index in 1..array_length(parkingSpaceIndexCode, 1) loop
                        --得到停车时长和车牌5位随机数
                        select '浙A'|| trunc(random() * (99999-10000 + 1) + 10000) into plateNo;
                        duration = cast (random()*1000 as INTEGER);
                        --使leavingtime随机
                        curLeavingTime = curLeavingTime + cast(cast (random()*100 as INTEGER)|| 'min' as INTERVAL);
                        --leavingtime减去duration得到parkingtime
                        curParkingTime = curLeavingTime - cast( duration || 'min' as INTERVAL) ;
                        --RAISE NOTICE 'indexCode is %,plateNo is %',parkingSpaceIndexCode[index],plateNo;
                        INSERT INTO pms_parking_space_history(space_index_code,parking_time,leaving_time,parking_duration,plate_no) values(parkingSpaceIndexCode[index],curParkingTime,curLeavingTime,duration,plateNo);
                        
                    end loop;
                 
                    --使下次循环的日期递减
                 curLeavingTime = curParkingTime - INTERVAL '1 day';
    
                END LOOP;
            end if;
      END;
      $BODY$
      LANGUAGE 'plpgsql' VOLATILE COST 100
    ;
    
    ALTER FUNCTION "public"."generate_history_data(loopcounts int4, enddate timestamp)"(loopcounts int4, enddate timestamp) OWNER TO "postgres";
  • 相关阅读:
    在Apache下开启SSI配置支持include shtml html和快速配置服务器
    GitHub命令精简教程
    php读取excel,以及php打包文件夹为zip文件
    Firebug中命令行栏(Commandlinie)的使用介绍和总结
    javascript判断设备类型-手机(mobile)、安卓(android)、电脑(pc)、其他(ipad/iPod/Windows)等
    jquery返回顶部-ie6配合css表达式。
    jquery.cycle.js简单用法实例
    原生javascript操作class-元素查找-元素是否存在-添加class-移除class
    常用css表达式-最小宽度-上下居中
    div模块变灰
  • 原文地址:https://www.cnblogs.com/winkey4986/p/6117957.html
Copyright © 2011-2022 走看看