Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Generuj losowy ciąg alfanumeryczny z wielkich i małych liter w Oracle

Możesz stworzyć własną funkcję. To jest jedna opcja:

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żesz dostosować 0.5 aby wziąć pod uwagę różne rozmiary puli - 26 dla l vs. 36 dla x . (.419354839? ). Możesz także użyć value() i przekazać w początkowym i końcowym zakresie wartości znaków, ale byłoby to specyficzne dla zestawu znaków.

Dlaczego... Oracle potrzebuje powodu? Użycie x może sugerować, że pierwotnie był szesnastkowy i został rozszerzony tak, aby obejmował wszystkie wielkie litery, bez jednoczesnego dodawania wersji z mieszanymi literami.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle:Połącz wiele wyników w podzapytaniu w jedną wartość oddzieloną przecinkami

  2. null vs pusty ciąg w Oracle

  3. Rama encji 6 i wyrocznia

  4. zbieraj informacje dba_users w bazie danych Oracle po połączeniu jako użytkownik

  5. Jak podzielić ciąg oddzielony przecinkami w Oracle