VALUE functions
Translation reference for DBMS_RANDOM.VALUE.
Description
The basic function gets a random number, greater than or equal to 0 and less than 1. Alternatively, you can get a random Oracle number
X
, whereX
is greater than or equal tolow
and less thanhigh
. (Oracle PL/SQL DBMS_RANDOM.VALUE)
This UDF is implemented using the Math.random function of Javascript to replicate the functionality of Oracle DBMS_RANDOM.VALUE function.
Syntax
DBMS_RANDOM.VALUE()
RETURN NUMBER;
DBMS_RANDOM.VALUE(
low NUMBER,
high NUMBER)
RETURN NUMBER;
Custom UDF overloads
Setup data
The DBMS_RANDOM
schema must be created.
CREATE SCHEMA IF NOT EXISTS DBMS_RANDOM;
DBMS_RANDOM.VALUE_UDF()
Parameters
No parameters.
CREATE OR REPLACE FUNCTION DBMS_RANDOM.VALUE_UDF()
RETURNS DOUBLE
LANGUAGE JAVASCRIPT
AS
$$
return Math.random();
$$;
Usage example
Oracle
SELECT DBMS_RANDOM.VALUE() FROM DUAL;
Snowflake
SELECT
--** MSC-WARNING - MSCEWI1020 - CUSTOM UDF 'DBMS_RANDOM.VALUE_UDF' INSERTED. **
--** MSC-WARNING - MSCEWI3112 - DBMS_RANDOM.VALUE DIGITS OF PRECISION IS LOWER IN SNOWFLAKE **
DBMS_RANDOM.VALUE_UDF() FROM DUAL;
DBMS_RANDOM.VALUE_UDF(NUMBER, NUMBER)
Parameters
low: The lowest
NUMBER
from which a random number is generated. The number generated is greater than or equal tolow
.high: The highest
NUMBER
used as a limit when generating a random number. The number generated will be less thanhigh
.
CREATE OR REPLACE FUNCTION DBMS_RANDOM.VALUE_UDF(low double, high double)
RETURNS DOUBLE
LANGUAGE JAVASCRIPT
AS
$$
return LOW === HIGH? LOW : LOW < HIGH? Math.random() * (HIGH-LOW) + LOW: Math.random() * (LOW-HIGH) + HIGH;
$$;
Usage example
Oracle
SELECT DBMS_RANDOM.VALUE(-10,30) FROM DUAL;
Snowflake
SELECT
--** MSC-WARNING - MSCEWI1020 - CUSTOM UDF 'DBMS_RANDOM.VALUE_UDF' INSERTED. **
--** MSC-WARNING - MSCEWI3112 - DBMS_RANDOM.VALUE DIGITS OF PRECISION IS LOWER IN SNOWFLAKE **
DBMS_RANDOM.VALUE_UDF(-10,30) FROM DUAL;
Known Issues
No issues were found.
Related EWIs
MSCEWI1020: CUSTOM UDF 'DBMS_RANDOM.VALUE' INSERTED.
MSCEWI3112: DBMS_RANDOM.VALUE DIGITS OF PRECISION IS LOWER IN SNOWFLAKE.
Last updated
Was this helpful?