2015-01-29 1 views
-3

как выбрать строку из трех случайных чисел, начиная с определенной буквы (например, для запуска из a, b или c) в pl/sql. А также я хочу сравнить эту трехзначную строку из моей базы данных, если она присутствует или нет.как выбрать строку из трех случайных чисел, начиная с определенной буквы (например, начиная с a, b или c) в pl/sql

+0

Вам нужно обновить свой вопрос, чтобы обеспечить более подробную информацию о том, что вы после этого - у вас есть строка, которую вы хотите SubStr или сделать вам нужно создать строку случайных буквы, а затем substr? Как вы определяете конкретное письмо, чтобы начать? 1-е место? 3-е вхождение ?. И «сравните эту трехзначную строку из моей базы данных» ... что, вы хотите искать все столбцы во всех таблицах? Или у вас есть конкретная таблица и столбцы? – Boneist

+0

Я хочу создать случайную строку из трех слов (например, ACQ), начиная с «A». Затем я wud lyk сравниваю это с существующими тремя словами. –

ответ

0
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; 

select f_get_random_string('A') as random_string 
from dual; 

 Смежные вопросы

  • Нет связанных вопросов^_^