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是随机字符串的长度

我应该从中了解默认不支持该功能吗?我应该从中了解默认不支持该功能吗?