sql >> データベース >  >> RDS >> Oracle

Oracleで大文字と小文字の英数字のランダム文字列を生成する

    あなたはあなた自身の機能を作ることができます。これは1つのオプションです:

    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
    

    0.5を調整することをお勧めします さまざまなプールサイズを考慮に入れる-lの場合は26 vs. xの場合は36 。 (.419354839? )。 value()を使用して、文字値の開始範囲と終了範囲を渡すこともできますが、これは文字セット固有です。

    理由について...オラクルには理由が必要ですか? xの使用 元々は16進数であり、大文字と小文字が混在するバージョンを同時に追加することなく、すべて大文字を含むように拡張されたことを示唆している可能性があります。



    1. クエリを単一のクエリにマージする方法(またはストアドプロシージャの場合もあります)。

    2. 可能なPostgres行ロックを解放する方法は?

    3. SQLServerの依存関係

    4. レコードの選択方法GROUP(group by)内にMAX(some_field)が含まれています