以下存储过程基于搜索类型(id、编号、名称)和搜索文本(“三星银河”或任何其他等)进行产品搜索。让我们假设
search_type 是名称, search_text 是“三星银河”
基于此条件,我编写了以下存储过程。
create or replace procedure product_search(
search_type IN varchar2,
search_text IN varchar2,
status IN varchar2)
is
cursor c1 is
SELECT p.pm_oid , p.item_name
FROM prism_item_hierarchy p
WHERE
CASE search_type
WHEN 'id' THEN p.pm_oid LIKE '%'||search_text||'%'
WHEN 'name' THEN Lower(p.item_name ) LIKE '%'||search_text||'%'
ELSE p.item_number LIKE '%'||search_text
END;
BEGIN
open c1;
-- fetch c1 into
close c1;
END;
但是我在 case-when-condition 上收到以下错误:
[Error] ORA-00905 (18: 49): PL/SQL: ORA-00905: missing keyword
你能否建议我如何解决这个问题,即使你提出其他方法来解决这个问题,它也会很棒。谢谢