天天看點

oracle中生成包含大小寫字元和數字的函數

function createString(n_num in number) return varchar2 is

    i integer default 0;

    v_token varchar2(50) default '';

  begin

    while i < n_num loop

      if mod(round(dbms_random.value(1, 2)), 2) > 0 then

        --生成字元

        if (mod(round(dbms_random.value(1, 2)), 2) > 0) then

          --生成大寫字元

          v_token := concat(v_token,

                            chr(65 + floor(dbms_random.value(0, 26))));

        else

          --生成小寫字元

          v_token := concat(v_token,

                            chr(97 + floor(dbms_random.value(0, 26))));

        end if;

      else

        --生成數字

        v_token := concat(v_token,to_char(floor(dbms_random.value(0, 10))));

      end if;

      i := i + 1;

    end loop;

    return v_token;

  end;

轉載于:https://blog.51cto.com/hdycfm/1601152