일부 절차는 PostgreSQL에서 새 DB2 환경으로 마이그레이션합니다. 나는 그것의 대부분을 다 가지고 있지만 내부 행 집합/레코드에 대한 변수를 선언하는 방법을 찾을 수 없습니다.DB2 저장 프로 시저 : 내부 "행 집합"을 지정하십시오.
DECLARE
counts RECORD;
BEGIN
-- fill "counts" with one row of aggregated data
SELECT
COUNT(....) AS failed_inserts,
COUNT(....) AS failed_updates,
COUNT(....) AS failed_deletes,
INTO counts
FROM (...)
-- check "counts" with some conditionals
IF counts.failed_inserts > 0
(...)
END IF;
(...)
-- return info depending on the data
RETURN (...);
END
내가 다른 곳에서 온라인으로 IBM 설명서의 "계산"을 선언거나 동등한를 찾을 수 없습니다 :
는 기본적으로 어떤 절차가 포스트 그레스에하는 일은 이것이다. 필요한 행은 정적 (집계 된 데이터의 3 열)입니다. 따라서 가능한 경우 해당 열을 하드 코드로 선언하는 것으로 충분할 것입니다.DB2의 저장 프로 시저 내에서 레코드/데이터 세트/"가상 테이블"을 선언 할 수 있습니까?
iSeries 용 DB2가 아닌 Linux 용 DB2 (V10.5)를 사용하고 있습니다.
올바른 솔루션-의 답변 포인트 @mustaccio : 다음
CREATE TYPE empRow AS ROW (failed_inserts INTEGER, failed_updates INTEGER, failed_deletes INTEGER);
당신이 절차 내에서 새로운 유형을 선언 할 수
이절차의 외부가 필요한 ROWTYPE을 만들 DECLARE newRow empRow;
포인터 주셔서 감사합니다. DB2는 사용자 코드 ('예상치 못한 토큰 "<유형 선언> [...]')을 허용하지 않았지만 사용자가 지적한 매뉴얼의 장을 통해 코드를 완료 할 수있었습니다. 내 게시물을 수정하겠습니다. –
코드에 PL/SQL과 DB2 SQL PL 구문을 혼합하지 말고 PL/SQL을 선택하면 Oracle 호환성을 사용하십시오. – mustaccio