#oracle #plsql
#Oracle #plsql
Вопрос:
Я создаю отчет в PLSQL.
Отчет работает нормально, и, кроме того, мне нужно добавить, когда пользователи ищут несколько значений из одного поля, разделенных на ;
. Он должен выбрать все данные, которые он ввел.
Пример: Продавец — Аманда; Мишель; Шармейн
Затем он должен выбрать данные, касающиеся amenda, michelle и sharmain.
Мой код возвращает данные только для одного значения.
пожалуйста, обратитесь к этой строке из кода and ifsapp.Customer_Order_API.Get_Salesman_Code(i.order_no) LIKE 'amp;Salesman'
where i.catalog_group='FPMB'
and i.order_no like 'M%'
and ((i.invoice_date between to_date( 'amp;From_Date', 'YYYY/MM/DD' ) and to_date( 'amp;To_Date', 'YYYY/MM/DD' ) ) or ('amp;From_Date' is null and 'amp;To_Date' is null))
and t.source_ref1=i.order_no
and (t.source_ref3=i.release_no)
and (t.source_ref2=i.line_no)
and i.contract=t.contract
and t.transaction_code='OESHIP'
and t.qty_reversed=0
and t.source_ref1=i.order_no
and t.serial_no <> '*'
and t.cost<>0.00
and i.order_no LIKE 'amp;Order_No
and ifsapp.Customer_Order_API.Get_Salesman_Code(i.order_no) LIKE 'amp;Salesman'
Комментарии:
1. Пожалуйста, покажите нам вашу полную хранимую процедуру
Ответ №1:
Вы можете использовать иерархический запрос следующим образом:
ifsapp.Customer_Order_API.Get_Salesman_Code(i.order_no) IN
(SELECT TRIM(REGEXP_SUBSTR('amp;Salesman','[^;] ',1,LEVEL))
FROM DUAL CONNECT BY TRIM(REGEXP_SUBSTR('amp;Salesman','[^;] ',1,LEVEL)) IS NOT NULL)
Комментарии:
1. Привет, Tejash, код работал так, как я хотел. Спасибо..
2. Рад узнать, что это помогло. Если это решило вашу проблему, вы должны пометить это как принятое, чтобы этот вопрос был отмечен как решенный.