1
커서를 통해 결과 세트를 리턴하는 스토어드 프로 시저 내에서 변수의 값을 선언하고 설정하려고합니다. 결과를 필터링하는 데 도움이되는 변수를 계획하기 때문에이 작업을 수행하고 있습니다.iSeries IDB2 - 결과 세트를 리턴하는 스토어드 프로 시저의 변수 선언
커서를 사용하여 내 문장을 모두 잘 작동합니다. 여기에 대한 코드는 다음과 같습니다.
CREATE OR REPLACE PROCEDURE MYLIB.MYTEST()
DYNAMIC RESULT SETS 1
LANGUAGE SQL
SPECIFIC MYTEST
NOT DETERMINISTIC
READS SQL DATA
CALLED ON NULL INPUT
BEGIN
DECLARE C1 CURSOR WITH RETURN FOR
SELECT * FROM SOMELIB.SOMEFILE
FETCH FIRST 100 ROWS ONLY;
OPEN C1;
END;
변수를 선언하고 설정하려고 할 때 오류가 발생합니다. 내가받을
CREATE OR REPLACE PROCEDURE MYLIB.MYTEST()
DYNAMIC RESULT SETS 1
LANGUAGE SQL
SPECIFIC MYTEST
NOT DETERMINISTIC
READS SQL DATA
CALLED ON NULL INPUT
BEGIN
DECLARE SOMENAME VARCHAR(10);
SET SOMENAME = 'JOHN';
DECLARE C1 CURSOR WITH RETURN FOR
SELECT * FROM SOMELIB.SOMEFILE WHERE LASTNAME = SOMENAME
FETCH FIRST 100 ROWS ONLY;
OPEN C1;
END;
오류는 다음과 같다 : 여기 코드는
SQL State: 42601
Vendor Code: -104
Message: [SQL0104] Token C1 was not valid. Valid tokens: GLOBAL.
Cause . . . . . : A syntax error was detected at token C1.
Token C1 is not a valid token. A partial list of valid tokens is GLOBAL.
This list assumes that the statement is correct up to the token.
The error may be earlier in the statement, but the syntax of the statement
appears to be valid up to this point. Recovery . . . :
Do one or more of the following and try the request again: --
Verify the SQL statement in the area of the token C1. Correct the statement.
The error could be a missing comma or quotation mark, it could be a
misspelled word, or it could be related to the order of clauses. --
If the error token is <END-OF-STATEMENT>, correct the SQL statement
because it does not end with a valid clause.
사람이 나에게 선언하고 결과 집합을 반환하는 저장 프로 시저에 변수를 설정하기위한 올바른 구문을 말할 수 있습니까? 심지어 가능할까요?
찰스에 감사드립니다. – Cesar