Zufallszahlen und -text generieren - DBMS_RANDOM
Um für Testzwecke etc. "zufällige" Zahlen / Strings zu erzeugen, gibt es in Oracle die Funktion dbms_random.
In Verbindung mit connect by kann so sehr einfach eine beliebige Menge an Zeilen mit Zufallswerten erzeugt werden:
SELECT dbms_random.value(1,1000) Z
, dbms_random.string('a',20) Txt
FROM DUAL CONNECT BY level < 101;
* DBMS_RANDOM.VALUE(low, high)
+ low -> untere Grenze
+ high -> obere Grenze
* DBMS_RANDOM.STRING(opt, len)
+ opt -> Definiert, was für ein String erzeugt wird
+ len -> Länge des String
+ Details zu opt:
Mehr dazu in der Doku:
https://docs.oracle.com/en/database/oracle/oracle-database/12.2/arpls/DBMS_RANDOM.html#GUID-6217A957-6E09-4BAB-B0D0-EB9DC0FCAECA
In Verbindung mit connect by kann so sehr einfach eine beliebige Menge an Zeilen mit Zufallswerten erzeugt werden:
SELECT dbms_random.value(1,1000) Z
, dbms_random.string('a',20) Txt
FROM DUAL CONNECT BY level < 101;
* DBMS_RANDOM.VALUE(low, high)
+ low -> untere Grenze
+ high -> obere Grenze
* DBMS_RANDOM.STRING(opt, len)
+ opt -> Definiert, was für ein String erzeugt wird
+ len -> Länge des String
+ Details zu opt:
-
'u', 'U' - returning string in uppercase alpha characters
-
'l', 'L' - returning string in lowercase alpha characters
-
'a', 'A' - returning string in mixed case alpha characters
-
'x', 'X' - returning string in uppercase alpha-numeric characters
-
'p', 'P' - returning string in any printable characters.
Beispiel:
select round(dbms_random.value(1000000000, 9999999999)) from dual;
erzeugt eine 10stellige, ganzzahlige Zufallszahl.
Mehr dazu in der Doku:
https://docs.oracle.com/en/database/oracle/oracle-database/12.2/arpls/DBMS_RANDOM.html#GUID-6217A957-6E09-4BAB-B0D0-EB9DC0FCAECA
Kommentare
Kommentar veröffentlichen