随机生成编码(判断重复)(oracle函数)

原文地址——http://blog.csdn.net/qq525099302/article/details/47253351

create or replace function generate_coupons_code(v_length in number:=16) return varchar2 is
  v_code varchar2(70);
  type t_arr is varray(16) of varchar2(1);
  char_arr t_arr;
  flag number(1,0):= 0;
begin
  char_arr:=t_arr(‘0‘,‘1‘,‘2‘,‘3‘,‘4‘,‘5‘,‘6‘,‘7‘,‘8‘,‘9‘,‘a‘,‘b‘,‘c‘,‘d‘,‘e‘,‘f‘);
  for i in 1..v_length
  loop
      v_code:=v_code||char_arr(floor(dbms_random.value(1,17)));
      --dbms_output.put_line(floor(dbms_random.value(1,17)));
  end loop;
  select count(1) into flag from b_coupons c WHERE c.code = v_code;
  if flag > 0 then
    return generate_coupons_code(v_length);
  end if;
  return(v_code);
end generate_coupons_code;

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-11 19:09:01

随机生成编码(判断重复)(oracle函数)的相关文章

js选择颜色小游戏(随机生成不含重复数字的数组,通过数组中的数控制定义好的数组)

<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title>js网页版小游戏</title> <style media="screen"> .wrap { width: 577px; outline: 1px solid hotpink; margin: 100px auto; box-shadow: 0 0 5px; } .

随机生成一组不重复的随机数组

public string RadomNumArray() { Random r = new Random(); int a = 0; int[] num = new int[6]; string text = ""; for (int i = 0; i < 6; i++) {//循环生成6个数字 a = r.Next(0, 99);//随机生成0到99之间的数字 num[i] = a; for (int k = 0; k < num.Length; k++) {//遍历数

转:在0~N(不包括N)范围内随机生成一个长度为M(M &lt;= N)且内容不重复的数组

1. 最朴素暴力的做法. void cal1() { int i = 0, j = 0, num = 0; int result[M]; result[0] = rand() % N; //第一个肯定不重复, 直接加进去 for (i = 1; i < M; i++) //获得剩下的(M-1)个随机数 { num = rand() % N; //生成0 ~ N之间的随机数字 for (j = 0; j < i; j++) { if (num == result[j]) //如果和result数

java 随机生成一个中文、判断某个string是否是中文以及打印出全部的中文

现在网上大多数用于判断中文字符的是 U+4E00..U+9FA5 这个范围是只是"中日韩统一表意文字"这个区间,但这不是全部,如果要全部包含,则还要他们的扩展集.部首.象形字.注间字母等等; 2E80-A4CF: 包含了中日朝部首补充.康熙部首.表意文字描述符.中日朝符号和标点.日文平假名.日文片假名.注音字母.谚文兼容字母.象形字注释标志.注音字母扩展.中日朝笔画.日文片假名语音扩展.带圈中日朝字母和月份.中日朝兼容.中日朝统一表意文字扩展A.易经六十四卦符号.中日韩统一表意文字.彝

生成不重复随机数函数

// 生成随机数函数 function createRandom(num,from,to) { var arr=[]; // 随机数数组 var json={}; // 标记json对象 while(arr.length<num) { // 产生单个随机数 var ranNum=Math.round(Math.random()*(to-from))+from; // 通过判断json对象的索引值是否存在 来标记 是否重复 if(!json[ranNum]) { json[ranNum]=1; a

随机生成数组,并且去重复项

1:先随机生成一组数字,并插入数组中: function randomArray(len, min, max) { if( len > (max - min +1) ){throw new Error('len > (max - min +1)')} //检查所设定数组是否超出预定总数,如果是则抛出异常 var result = []; for( var i = 0; i < len; i++){ var e = Math.floor(Math.random()*( max - min

算法初级面试题05——哈希函数/表、生成多个哈希函数、哈希扩容、利用哈希分流找出大文件的重复内容、设计RandomPool结构、布隆过滤器、一致性哈希、并查集、岛问题

今天主要讨论:哈希函数.哈希表.布隆过滤器.一致性哈希.并查集的介绍和应用. 题目一 认识哈希函数和哈希表 1.输入无限大 2.输出有限的S集合 3.输入什么就输出什么 4.会发生哈希碰撞 5.会均匀分布,哈希函数的离散性,打乱输入规律 public class Code_01_HashMap { public static void main(String[] args) { HashMap<String, String> map = new HashMap<>(); map.p

python 用户在键盘上输入一个自然数n,然后在区间[1, 5n]上随机生成n个不重复的自然数,输出这些自然数, 然后继续编写代码对这些自然数进行处理,只保留所有偶数,并输出这些偶数

#用户在键盘上输入一个自然数n,然后在区间[1, 5n]上随机生成n个不重复的自然数,输出这些自然数,# 然后继续编写代码对这些自然数进行处理,只保留所有偶数,并输出这些偶数import randomn=int(input("请输入整数"))shu=set()i=0while True: num=random.choice(range(1,5*n+1))#生成随机数 shu.add(num) if len(shu)==n: breakprint("n个不重复的随机数是:&qu

判断随机生成的四则运算结果

功能:1.随机生成一个四则运算 2.用户输入式子结果后判断是否正确(结果取整) #include<stdio.h> #include<string.h> #include<stdlib.h> #include<stack> using namespace std; int n,t,n1; struct ZX { char a; bool b;//if b=0 括号 if b=1 数字 } ; stack<ZX>s1; void atersz(ZX