sql >> Databáze >  >> RDS >> Oracle

Generování velkých a malých alfanumerických náhodných řetězců v Oracle

Můžete si vytvořit vlastní funkci. Toto je jedna možnost:

create or replace function random_str(v_length number) return varchar2 is
    my_str varchar2(4000);
begin
    for i in 1..v_length loop
        my_str := my_str || dbms_random.string(
            case when dbms_random.value(0, 1) < 0.5 then 'l' else 'x' end, 1);
    end loop;
    return my_str;
end;
/

select random_str(30) from dual;

RANDOM_STR(30)
--------------------------------------------------------------------------------
pAAHjlh49oZ2xuRqVatd0m1Pv8XuGs

Možná budete chtít upravit 0.5 vzít v úvahu různé velikosti bazénu - 26 pro l vs. 36 pro x . (.419354839? ). Můžete také použít value() a předat počáteční a koncový rozsah hodnot znaků, ale to by bylo specifické pro znakovou sadu.

Proč... potřebuje Oracle důvod? Použití x může naznačovat, že to bylo původně hexadecimální a bylo rozšířeno tak, aby zahrnovalo všechna velká písmena, aniž by je napadlo přidat verzi se smíšenou velikostí ve stejnou dobu.



  1. Dotaz MySql Nahraďte hodnotu NULL prázdným řetězcem ve výběru

  2. Aktualizujte sloupec v databázi, kde je maximální hodnota php mysql

  3. Je index v Oracle seskupený nebo unclustered?

  4. Jak získám databázi SQL do R z místního hostitele?