我创建了一个存储过程,其中包含一个输入参数和一个光标来获取结果
create or replace PROCEDURE TEST_STORED_PROC2
(DISEASEID IN varchar2, stock2_cursor OUT SYS_REFCURSOR)
IS
BEGIN
OPEN stock2_cursor FOR
SELECT DISTINCT
B.*, INITCAP(B.SYMPTOM_NAME) SYMPTOM_DESCRIPTION_NEW
FROM
SYMPTOM_GLCL_DISEASE_LINK A, SYMPTOM_MASTER B
WHERE
A.SYMPTOM_ID = B.SYMPTOM_ID
AND A.DISEASE_ID IN DISEASEID;
END;
我想在输入参数中传递3个diseaseid,怎么做?
答案 0 :(得分:0)
快速而肮脏的黑客可以通过DISEASEID参数(例如12,245,2532
)传递连接的ID,然后使用LIKE
运算符进行比较(查询的最后一行):
AND ',' || DISEASEID || ',' LIKE '%,' || A.DISEASE_ID || ',%';
但请注意,这不是最佳解决方案(关于速度,最佳实践......)。