概念実証として簡単な PG SP を作成しました。ただし、SP を実行するとエラー メッセージが表示されます。スキーマと SP の SQL は次のとおりです。
CREATE TABLE foobar
(
forename VARCHAR(255),
surname VARCHAR(32),
enrolement_ts TIMESTAMP,
age SMALLINT,
major VARCHAR(32),
user_id INTEGER
);
CREATE OR REPLACE FUNCTION insert_foobar (
forename VARCHAR(255),
surname VARCHAR(32),
age SMALLINT,
major VARCHAR(32) ) RETURNS VOID AS $$
INSERT INTO foobar VALUES (forename, surname, getdate(), age, major, user_id());
$$ LANGUAGE sql;
コマンド ラインで関数定義を入力すると、次のエラーが発生します。
ERROR: column "forename" does not exist
LINE 6: INSERT INTO foobar VALUES (forename, surname,...
^
このエラーの原因を特定/説明できる人はいますか? 明らかに、列 forename はテーブル スキーマに存在するため、エラー メッセージがわかりません。