私はplpgsqlが関数にユーザー定義型のパラメータを渡したいが、私は、実行時にこのエラーを取得しています:何らかの理由でユーザ定義型変数を関数にパラメータとして渡すにはどうすればよいですか?
dev=# select process_shapes();
ERROR: invalid input syntax for integer: "(,,7)"
CONTEXT: PL/pgSQL function process_shapes() line 9 at SQL statement
dev=#
、パラメータが正しく渡されていないと、それはdoesnの理由を私は考えています仕事はありません。
私の機能は以下のとおりです。
CREATE OR REPLACE FUNCTION join_shapes(first_shape shape_t,second_shape shape_t,OUT new_shape shape_t)
AS $$
DECLARE
BEGIN -- simplified join_shape()s function
new_shape.num_lines:=first_shape.num_lines+second_shape.num_lines;
END;
$$ LANGUAGE PLPGSQL;
CREATE OR REPLACE FUNCTION process_shapes()
RETURNS void AS $$
DECLARE
rectangle shape_t;
triangle shape_t;
produced_shape shape_t;
BEGIN
rectangle.num_lines:=4;
triangle.num_lines:=3;
SELECT join_shapes(rectangle,triangle) INTO produced_shape;
RAISE NOTICE 'produced shape = %s',produced_shape;
END;
$$ LANGUAGE PLPGSQL;
タイプの定義:
CREATE TYPE shape_t AS (
shape_id integer,
shape_name varchar,
num_lines integer
);
Postgresのバージョン:9.6.1
@ErwinBrandstetter、申し訳ありませんが、私は9.6.1バージョン – Nulik