Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Generieren Sie alphanumerische Zufallszeichenfolgen in Groß- und Kleinbuchstaben in Oracle

Sie können Ihre eigene Funktion erstellen. Dies ist eine Option:

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

Vielleicht möchten Sie 0.5 anpassen um die unterschiedlichen Beckengrößen zu berücksichtigen - 26 für l vs. 36 für x . (.419354839? ). Sie könnten auch value() verwenden und den Start- und Endbereich der Zeichenwerte übergeben, aber das wäre zeichensatzspezifisch.

Warum ... braucht Oracle einen Grund? Die Verwendung von x könnte darauf hindeuten, dass es ursprünglich hexadezimal war und um alle Großbuchstaben erweitert wurde, ohne dass ihnen in den Sinn kam, gleichzeitig eine Version mit gemischten Groß- und Kleinschreibung hinzuzufügen.