首页 > 解决方案 > Postgres 在 funcio 中调用 Function 不是我所期望的

问题描述

嗨,函数 F_B() 在括号“(i,m)”中返回,而不是 2 列“i”和“m”!

CREATE FUNCTION F_A
(
i_productionsitename IN TEXT, 
i_printjobid IN TEXT,
i_isnewlycreated IN INT,
o_returncode OUT TEXT, 
o_message OUT TEXT
) AS $$
DECLARE 

BEGIN 
    Select 'i', 'm'  into o_ReturnCode, o_message;
    END;

$$ LANGUAGE plpgsql;

SELECT * FROM F_A('DRM', '42',1); => 我和米

CREATE FUNCTION  F_B

    (
        i_productionsitename IN TEXT, 
        i_printjobid IN TEXT,
        i_isnewlycreated IN INT,
        o_returncode OUT TEXT, 
        o_message OUT TEXT
    ) AS $$
DECLARE 
    rec RECORD;
    l_ReturnCode TEXT;
    l_Message    TEXT;

    BEGIN
        o_ReturnCode      := 'l_OK'; 
        o_Message         := 'l_Kein Problem';

        Select F_A (i_ProductionSiteName, i_PrintJobID , i_isnewlycreated)  INTO l_ReturnCode, l_Message ; --rec ;
        o_ReturnCode := l_ReturnCode; --' rec.o_message;
        o_Message := l_Message;

        END;

    $$ LANGUAGE plpgsql;
    SELECT * FROM F_B('DRM', '42',1);

=> 给出 (i,m) & null

为什么第二列是空的,但首先有 2 个值?怎么了?谢谢

标签: postgresqlfunction

解决方案


推荐阅读