2012-03-22 4 views
0

레코드 유형을 매개 변수로 사용하고 싶지만 레코드 유형 매개 변수를 가질 수 없다는 메시지가 나타납니다. 매개 변수를 통해 Arraylist 전달 된 다양한 작업을 수행하는 Dao 함수가 있고 저장 프로 시저에서 구현해야합니다. 그래서 어떤 도움을 주시면 감사하겠습니다. 감사! 나는 새로운 PostgreSQL의를 사용하고 있지만, 이전에 저장 기능을 사용했지만 결코 레코드 유형 매개 변수를 사용할 필요가 없습니다저장된 함수에서 레코드를 매개 변수로 사용하는 방법

CREATE OR REPLACE FUNCTION est_fn_get_emp_report(rec record,...) 

: 무엇인가를 찾고 함수 m이다.

+0

안녕하세요, PL/pgSQL에서는 할 수 없습니다. PLpgSQL은 복합 형 매개 변수를 가질 수 있지만 매개 변수는 다형성이 아니어야합니다. 선언 된 유형이나 테이블 유형이어야합니다. –

+0

고맙습니다. 선생님, 제 데이터베이스에 '유형'을 만들고 함수의 매개 변수로 사용하면 효과가 있습니까? – VPK

+0

예, plpgsql은 복합 유형 –

답변

1

간단한 문제는 레코드를 지정할 수 없다는 것입니다. 함수의 입력으로 일부 다형성 유형 (ANYARRAY, ANYELEMENT)을 지정할 수 있지만 계획 시간에 알려진 구조가 있어야하며 좋은 하루에도 입력 인수로 다형성 유형 문제가 발생할 수 있습니다. 레코드 문제는 PostgreSQL이 전달 될 때 내부 구조가 무엇인지를 알지 못합니다. ROW(1, 'test')은 기능적 측면에서 유용하지 않습니다.

대신 복잡한 유형을 지정하려고합니다. 실제로 PostgreSQL에 의존하는 측면에서이 점을 매우 멀리 생각할 수 있습니다. 이를 통해 레코드를 전달할 때 특정 레코드 유형을 지정할 수 있습니다.