Plsql 如何在pl/sql中选择一个由三个随机字符组成的字符串,后者从特定字母开始(例如,从a、b或c开始)

Plsql 如何在pl/sql中选择一个由三个随机字符组成的字符串,后者从特定字母开始(例如,从a、b或c开始),plsql,plsqldeveloper,Plsql,Plsqldeveloper,如何在pl/sql中选择一个由三个随机字符组成的字符串,后者从特定字母开始(例如,从a、b或c开始)。我还想比较一下数据库中的三位数字符串是否存在 create or replace function f_get_random_string( p_start_letter in varchar2 ) return varchar2 is cursor c_string_exists( p_string in varchar2 ) is

如何在pl/sql中选择一个由三个随机字符组成的字符串,后者从特定字母开始(例如,从a、b或c开始)。我还想比较一下数据库中的三位数字符串是否存在

create or replace function f_get_random_string(
    p_start_letter in varchar2
)
return varchar2
is
    cursor c_string_exists(
        p_string in varchar2
    )
    is
      select 'Y'
      from dual
      where exists (
                select *
                from my_table
                where my_string = p_string
            );

    l_string        varchar2(3);
    l_string_exists varchar2(1);
begin
    loop
        l_string := p_start_letter || dbms_random.string('U', 2);

        l_string_exists := null;

        open c_string_exists(l_string);
        fetch c_string_exists into l_string_exists;
        close c_string_exists;

        exit when l_string_exists is null;
    end loop;

    return l_string;
end f_get_random_string;


您需要更新您的问题,以提供更多关于您所追求的内容的信息-您是否有一个要替换的字符串,或者您是否需要生成一个随机字母字符串,然后替换?你如何确定从哪个字母开始?第一次发生?第三次发生?。和“比较我数据库中的三位数字符串”。。。什么,要搜索所有表中的所有列?或者您是否考虑了特定的表和列?我想随机生成一个从say'a'开始的三个单词的字符串(例如ACQ)。然后我让lyk将它与我现有的三个单词字符串进行比较。
select f_get_random_string('A') as random_string
from dual;