Stored procedures ORACLE存储过程问题

Stored procedures ORACLE存储过程问题,stored-procedures,plsql,oracle11g,oracle10g,Stored Procedures,Plsql,Oracle11g,Oracle10g,我创建了一个存储过程,其中包含一个输入参数和一个游标以获取结果 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_DES

我创建了一个存储过程,其中包含一个输入参数和一个游标以获取结果

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,怎么做

快速而肮脏的黑客可以通过DISEASEID参数(例如,
122452532
)传递连接的ID,然后使用
LIKE
运算符进行比较(查询中的最后一行):


但是请注意,这不是一个最佳解决方案(关于速度、最佳实践…。

快速而肮脏的黑客可以通过DISEASEID参数(例如
122452532
)传递连接的ID,然后使用
LIKE
运算符进行比较(查询中的最后一行):

但请注意,这并不是一个最佳解决方案(关于速度、最佳实践…)

-在ANSI-92 SQL标准中(20多年前),旧式的逗号分隔表列表样式被正确的ANSI
JOIN
语法所取代不鼓励使用它——在ANSI-92 SQL标准(20多年前)中,旧式的逗号分隔表列表样式被正确的ANSI
JOIN
语法所取代,不鼓励使用它
AND ',' || DISEASEID || ',' LIKE '%,' || A.DISEASE_ID || ',%';