Мне нужна помощь в написании процедуры для получения сведений о сотруднике, когда пользователь выполняет поиск либо по месту, либо по округу, либо по почтовому индексу (все 3, содержащиеся в столбце Emp_Address
, разделены запятой и пробелом).
Employee
таблица:
Emp_Address column consists ( Place, County (zipcode))
EMP_ID Emp_Address
--------------------------------------
1 Leeds, NorthYork (ls2ph)
2 London, NorthHam (tl9yh)
3 Cunniham, Norwalk (tc1f1)
4 Excel, Shire (cp14)
5 Bradford, Clarkson (cr123)
Процедура:
Procedure search_emp (pt_zipCode in varchar2,
pt_address in varchar2,
empCursor out ref cursor)
as
begin
open empCursor for
select e.emp_id,
e.emp_address
from employee e
where ( UPPER(REGEXP_SUBSTR(Emp_Address, '\((.+)\)', 1, 1, NULL, 1)) = UPPER (pt_zipCode) or pt_zipCode IS NULL ) -- this is working fine when searched for zipCode directly
--- I'm not sure how to get the results when the User enters (First '2' characters only for place /county (or) entire place (or) entire county) in 'pt_address' input parameter.
end;
Ожидаемый результат:
a) Search for "No" in 'pt_address' parameter. Below 3 records should display
EMP_ID Emp_Address
--------------------------------------
1 Leeds, NorthYork (ls2ph)
2 London, NorthHam (tl9yh)
3 Cunniham, Norwalk (tc1f1)
b) Search "NorthHam" :
EMP_ID Emp_Address
--------------------------------------
2 London, NorthHam (tl9yh)
c) Search "Excel"
EMP_ID Emp_Address
--------------------------------------
4 Excel, Shire (cp14)
Пожалуйста, помогите.