2012-03-20 3 views
3

아래 스크립트를 실행하는 동안 아래 오류가 표시됩니다. 내 목표는 Postgres에서 bigint로 1을 반환하는 함수를 만드는 것이다. 도와주세요!Postgres의 Bigint에 Bigint 캐스팅 정수

hashtagpostgresnoobie

ERROR: function result type must be bigint because of OUT parameters

CREATE OR REPLACE FUNCTION GetNumberOne(
    OUT numberone bigint) 
    RETURNS SETOF record AS 
$BODY$ 

    SELECT CAST(1 AS BIGINT) AS "NUMBERONE"; 

$BODY$ 
    LANGUAGE sql VOLATILE; 

답변

7

당신은 갑자기 기록이 둘 개 이상의 필드가 필요) 기능을 발생했습니다. 따라서 변수가 하나 밖에없는 경우 결과는 스칼라 여야합니다.

그래서, 당신은 단순히) 무엇을 물어 컴파일러

CREATE OR REPLACE FUNCTION GetNumberOne(
     OUT numberone bigint) 
     RETURNS bigint AS 
    $BODY$ 

     SELECT CAST(1 AS BIGINT) AS "NUMBERONE"; 

    $BODY$ 
     LANGUAGE sql VOLATILE; 

plpgsql 예를 수행 할 수 있습니다 내 느림에 대해 사과

CREATE OR REPLACE FUNCTION NumberOne() 
     RETURNS bigint AS 
    $BODY$ 
     DECLARE num bigint; 
     BEGIN 
     num := 1; 
     RETURN num; 
     END 
    $BODY$ 
     LANGUAGE plpgsql VOLATILE; 
     select * from NumberOne() 
+0

을,하지만 당신은 더 구체적으로하시기 바랍니다 수 있을까? 나는 그 일을하는 데 어려움을 겪었다. 저는 지금 약 10 시간 동안 Postgres를 사용하고 있습니다. :/ –

+0

점심 식사 후 정확한 스 니펫 제공) –

+0

더 간단 해졌습니다. 보세요. –