2010-07-19 3 views
0

안녕하세요, 저는 ISeries DB2의 저장 프로 시저를 작성하는 데 어려움을 겪고 있지만 오류가 있습니다.저장 프로 시저의 오류

create procedure pakretst.fttest2 
(IN fExpression CHARACTER(10)) 

language sql 

reads sql data 

dynamic result sets 1 

begin 

declare stmt VARCHAR(50); 

declare x cursor for sl; 

If ftExpression IS NOT NULL 

set stmt='select * from pakretst.uwftrtystp WHERE'+ftExpression; 

else 


set stmt='select * from pakretst.uwftrtystp'; 

prepare sl from stmt; 

open x; 

return; 

end 

; 

**** SQL 상태 : 42618 공급 업체 코드 : -312 메시지 : [SQL0312] 변수 FTEXPRESSION하지 정의 또는 사용할 수 없습니다. 원인 . . . . . : 변수 FTEXPRESSION이 SQL 문에 나타나지만 다음 조건 중 하나가 존재합니다. - 변수에 대한 선언이 없습니다. - **

+2

무엇이 오류입니까? – krock

+0

입력 변수에 포함하고있는 변수에 대해, 원래의 포스트에 기술 된 것을 말합니다. –

+0

이와 같은 것이 이해가되지 않으면 컴퓨터가 도움이되도록하십시오. 오류 메시지에서 변수 이름을 복사하고 PC의 "검색"기능을 사용하여 소스 텍스트에서 변수 이름을 찾으십시오. ** 단순히 당신의 눈으로 모든 검사를하려고하지 마십시오. 이 예제 질문에서 당신을 실패한 것은 이것들입니다. – user2338816

답변

1

나는 이것이 전사의 간단한 오류가 있다면 모르겠지만 당신이 여기에서 주어진 것을, 당신은

매개 변수 목록에서
(IN fExpression CHARACTER(10)) 

하지만

set stmt='select * from pakretst.uwftrtystp WHERE'+ftExpression; 

이에 사용 시점에서 - fExpressionftExpression ...

+0

고마워, 내가 그랬다고 믿을 수 없어. 그것은 다른 오류를 던지기는하지만 현재는 앞으로 나아갑니다. 건배. –