Есть ли довольно простой способ ввода входного параметра, содержащего разделенный запятыми список префиксов и возвращающий курсор на основе оператора select, который их использует?PL/SQL Хранимый proc, который использует параметр, разделенный запятой, для управления динамическим предложением LIKE?
т.е. (псевдокод)
PROCEDURE get_by_prefix(p_list_of_prefixes IN varchar2, r_csr OUT SYS_REFCURSOR)
IS
BEGIN
OPEN r_csr FOR
SELECT * FROM my_table where some_column LIKE (the_individual_fields_from p_list_of_prefixes ||'%')
END
Я пробовал различные комбинации, и теперь есть две проблемы - принуждая вход в подходящую таблицу (я думаю, что она должна идти в тип таблицы, а не VARCHAR2_TABLE), и, во-вторых, получение подобной статьи для эффективного SELECT из внутреннего «псевдоустойчивого» ...
EDIT: Кажется, люди предлагают способы использовать «IN» с набором потенциальных значений, тогда как Im look при использовании LIKE. I может использовать, используя подобную технику - создание динамического SQL, но было интересно, нет ли более элегантного способа ...
Это не работает с LIKE, если только я не ошибаюсь .... – PaulJWilliams
Возможный дубликат параметра [разделенный запятой в хранимой процедуре plsql] (http://stackoverflow.com/questions/28159341/comma-separated-parameter-in- plsql-stored-procedure) – XING
Вы пытаетесь использовать 'like' как' In', и оба предназначены для некоторых целей. Если бы оба были одинаковыми, то не было бы необходимости в двух разных операторах. – XING