I am trying to fetch Distinct values into the For loop in SAP HANA using CURSOR and For Loop and I am not getting all the distinct values into the For Loop. Instead of getting 10 distinct names, I am getting only 5 names in my output. Could you please guide me with the correct SQL?

CREATE PROCEDURE DBADMIN.FetchDistinctStrings()
LANGUAGE SQLSCRIPT
AS
BEGIN
    DECLARE STRING1 VARCHAR(255);
    DECLARE CURSOR MyTenIDFetch (STRING1 VARCHAR(255)) FOR
        SELECT DISTINCT EMPLOYEE_NAMES FROM "H_CPO_MAIN"."TABLE_NURO";
    OPEN MyTenIDFetch(:STRING1);
    FETCH MyTenIDFetch INTO STRING1;
    FOR CUR_ROW AS MyTenIDFetch(STRING1) DO
        SELECT STRING1 as STRING_NAMES FROM DUMMY;
    END FOR;
    CLOSE MyTenIDFetch;
END;
1

There are 1 best solutions below

0
Lars Br. On

When using a cursor with the FOR ... LOOP the OPEN, FETCH, and CLOSE commands are handled automatically. Having these commands in the code in addtion to the FOR ... LOOP is superfluous.

Check the example in the documentation.

Also, the cursor parameter STRING1 is never referenced in the SELECT command.