有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在postgres中为%type创建IN,OUT,我试过这个

CREATE OR REPLACE FUNCTION GetProduct(_product_id  NUMERIC,
                                     _product_name OUT products.product_name%TYPE,
                                     _category OUT products.category%TYPE,
                                     _quantity OUT products.quantity%TYPE,
                                     _price OUT products.price%TYPE)
RETURNS VARCHAR
Language 'plpgsql'
AS
$$

DECLARE flag BOOLEAN;
BEGIN

SELECT product_id,product_name,category,quantity,price 
INTO _product_id,_product_name,category,quantity,price FROM products 
WHERE product_id=_product_id;
flag=true;
RETURN flag;
END;
$$

我试过这样做,但它显示出一些错误,比如

NOTICE:  type reference products.price%TYPE converted to numeric

ERROR:  function result type must be record because of OUT parameters
SQL state: 42P13

共 (1) 个答案

  1. # 1 楼答案

    注意事项可能是因为您使用的是域,而这被简化为基本类型

    错误表明OUT参数和声明的函数返回类型相互矛盾:函数不返回单个varchar,而是返回由多个元素组成的复合值

    因此,遵循错误消息并将函数声明为RETURNS record