2

ここに私のタイプがあります:

CREATE TYPE occupant AS (name text, title title);  

そして、ここに私のテーブルがあります:

CREATE TABLE office (id INTEGER DEFAULT NEXTVAL('venue_id_seq'),occupant occupant) INHERITS(venue);

そして、これは私の機能です:

 CREATE or REPLACE FUNCTION occupantName(id int) RETURNS text AS 
$$
  SELECT occupant.tile + occupant.name FROM office as v WHERE id = v.id;
$$ LANGUAGE SQL;

それは私にこのエラーを与えています:

ERROR:  missing FROM-clause entry for table "ocupant"
LINE 15:       SELECT ocupant.tile + ocupant.name FROM office as v WH...
4

1 に答える 1

5

複合型フィールドにアクセスするには、占有者を括弧で囲む必要があります。

CREATE or REPLACE FUNCTION occupantName(id int) RETURNS text AS 
$$
  SELECT (occupant).tile || (occupant).name FROM office as v WHERE id = v.id;
$$ LANGUAGE SQL;
于 2013-08-15T14:43:09.957 に答える