我正在尝试使用 CURSOR 和 For 循环将不同值提取到 SAP HANA 中的 For 循环中,但我没有将所有不同值提取到 For 循环中。我在输出中只得到 5 个名称,而不是 10 个不同的名称。你能指导我正确的 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;
当使用带有
FOR ... LOOP
的光标时,会自动处理 OPEN
、FETCH
和 CLOSE
命令。
除了 FOR ... LOOP
之外,在代码中包含这些命令是多余的。
检查文档中的示例。
此外,在 SELECT 命令中永远不会引用光标参数
STRING1
。