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