从函数返回默认的INSERT INTO消息

时间:2017-03-06 13:24:13

标签: sql postgresql plpgsql

希望输出默认的INSERT INTO消息,其中打印出插入的记录数。知道这与将RETURNS从void更改为其他东西并可能添加OUT参数有关吗?

this.checkCredits(this.myObject); 

1 个答案:

答案 0 :(得分:2)

使用GET DIAGNOSTICS命令填充,然后返回变量:

CREATE OR REPLACE FUNCTION etl(from_table regclass, to_table regclass) RETURNS integer AS
$$
DECLARE
    rows integer;
BEGIN
    EXECUTE format('INSERT INTO %I (title) 
                        SELECT data->>''title'' as title
                        FROM %I', to_table, from_table);
    GET DIAGNOSTICS rows = ROW_COUNT;
    RETURN rows;
END;
$$ LANGUAGE plpgsql;

您还应该使用format()函数来组合动态SQL命令。此外,您可以在多行上编写文字字符串,而无需在每一行使用结束/开头引号。