Sql 如何使用DBMS_RANDOM oracle返回大小写混合的字母数字字符串?
基于此处的规范,节字符串函数、参数 无法设置大小写混合的字母数字字符串。此功能不受支持,或者Sql 如何使用DBMS_RANDOM oracle返回大小写混合的字母数字字符串?,sql,oracle,random,Sql,Oracle,Random,基于此处的规范,节字符串函数、参数 无法设置大小写混合的字母数字字符串。此功能不受支持,或者 还有其他的设置要考虑吗? 如果功能正常 CREATE OR REPLACE FUNCTION GET_RANDOM_STRING(v_length NUMBER) RETURN VARCHAR2 IS lKey VARCHAR2(4000); BEGIN FOR I IN 1..v_length LOOP lKey := lKey || substr( 'abcdefghijk
还有其他的设置要考虑吗? 如果功能正常
CREATE OR REPLACE FUNCTION GET_RANDOM_STRING(v_length NUMBER) RETURN VARCHAR2
IS
lKey VARCHAR2(4000);
BEGIN
FOR I IN 1..v_length LOOP
lKey := lKey || substr( 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789', mod(abs(dbms_random.random), 62)+1, 1);
END LOOP;
RETURN lKey;
END;
/
如果功能正常
CREATE OR REPLACE FUNCTION GET_RANDOM_STRING(v_length NUMBER) RETURN VARCHAR2
IS
lKey VARCHAR2(4000);
BEGIN
FOR I IN 1..v_length LOOP
lKey := lKey || substr( 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789', mod(abs(dbms_random.random), 62)+1, 1);
END LOOP;
RETURN lKey;
END;
/
此外,您还可以根据cagcowboy提供的函数进行简单查询。比如:
SELECT LISTAGG (
(SELECT SUBSTR ('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789', rnd, 1)
FROM DUAL),
'')
WITHIN GROUP (ORDER BY lvl)
FROM (SELECT LEVEL AS lvl, MOD (ABS (DBMS_RANDOM.random), 62) + 1 AS rnd
FROM DUAL
CONNECT BY LEVEL < 10)
其中10是随机字符串的长度,您也可以根据cagcowboy的函数进行简单查询。比如:
SELECT LISTAGG (
(SELECT SUBSTR ('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789', rnd, 1)
FROM DUAL),
'')
WITHIN GROUP (ORDER BY lvl)
FROM (SELECT LEVEL AS lvl, MOD (ABS (DBMS_RANDOM.random), 62) + 1 AS rnd
FROM DUAL
CONNECT BY LEVEL < 10)
其中10是随机字符串的长度我应该从中了解默认不支持该功能吗?我应该从中了解默认不支持该功能吗?