Вызов функции Postgres в функции не соответствует ожиданиям - PullRequest
0 голосов
/ 30 сентября 2019

Привет, функция 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 * FROMF_A («DRM», «42», 1);=> i & m

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 значения? Что случилось? Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...