현재 저장 프로 시저를 실험하고 있으며 간단한 IF/ELSE 문을 구현하려고합니다. DB2를 사용하고 있는데 프로 시저 매개 변수가 null이고 매개 변수가 null이 아니면 모든 레코드를 선택하려고합니다. 데이터베이스를 쿼리합니다.DB2 저장 프로 시저 IF 문
DROP PROCEDURE [email protected]
CREATE PROCEDURE LWILSON.IFQUERY
(
IN p_type VARCHAR(15)
)
DYNAMIC RESULT SETS 1
LANGUAGE SQL
BEGIN
DECLARE c_result CURSOR WITH RETURN FOR
IF p_type IS NULL
THEN
SELECT * FROM LWILSON."ANIMALS";
OPEN c_result;
ELSE
SELECT ID,TYPE,NAME,WEIGHT, AGE FROM LWILSON."ANIMALS" AS ANIMALRESULTS WHERE ANIMALRESULTS.type = p_type;
OPEN c_result;
END IF;
[email protected]
(I 명령 분리기에 대한 @ 기호를 사용하고 있습니다) 다음과 같이
내 저장 프로 시저 코드입니다. 절차를 실행하려고 할 때 표시되는 오류 메시지는 다음과 같습니다.
도움을 주시면 감사하겠습니다. 감사.
커서 정의와 함께 'if.. else'를 사용할 수 있다고 생각하지 마십시오. – Rahul
두 개의 커서를 선언하고 하나 또는 다른 커서를 열어야합니다. – mustaccio
나는 명시된 것 아래에 다른 커서를 선언했다. 그런 다음 각각의 커서를 열었고 여전히 작동하지 않습니다. 다른 제안? 감사. – LiamWilson94