필자는 pgplsql을 처음 사용하고 있으며, 지금까지는 함수로받은 배열을 반복하는 함수를 만들어야했습니다.plpgsql 함수에서 매개 변수로받은 배열에서 루프하는 방법은 무엇입니까?
새로운 형식의 ID로 수신 된 배열에 포함 된 각 ID를 매핑하는 테이블에 새 레코드를 삽입하는 방법은 수신 된 두 번째 매개 변수에 따라 형식이 달라지며 테이블 "idsTable"을 반환합니다.
ERROR : ARRAY idsList 루프 FOREACH의 OBJECTID : FOREACH의 루프 변수가 알려진 변수 또는 LINE (38) 변수의 목록이 있어야합니다
문제는 그 기능을 만들려고 할 때 나에게 오류를 전송하는 것입니다
내가 본 적이없는 예제에서 objectid 변수를 선언해야하는지 확실하지 않습니다. 잘못 될 수 있는지의
CREATE OR REPLACE FUNCTION createId(idsList varchar[], objectType varchar)
RETURNS TABLE(original_id varchar, new_id char) as
$$
BEGIN
IF LOWER(objectType) = 'global' THEN
FOREACH objectid IN ARRAY idsList LOOP
INSERT INTO idsTable(original_id, new_id)
VALUES(objectid, 'GID'||nextval('mapSquema.globalid')::TEXT);
END LOOP;
ELSE
FOREACH objectid IN ARRAY idsList LOOP
INSERT INTO idsTable(original_id, new_id)
VALUES(objectid, 'ORG'||nextval('mapSquema.globalid')::TEXT);
END LOOP;
END IF;
END;
$$ LANGUAGE plpgsql;
어떤 아이디어 :
지금까지 나는이 있나요?
편집 : idsTable이 반환되는 부분을 추가하지 않았습니다.
감사합니다. 좋은 조언입니다. 시험해 보겠습니다. –