Postgres を使用して単純な関数をコーディングしましたが、次の結果が得られます。
エラー: "$2" またはその付近で構文エラーが発生しました。
基礎となるデータベースは ParAccel で、私は Postgres と ParAccel の両方を初めて使用します。IDE として TOAD Data Point を使用しています。
CREATE OR REPLACE FUNCTION GET_NEXT_SURR_KEY(I_SCHEMA_NM VARCHAR, I_TABLE_NM VARCHAR,I_COLUMN_NM VARCHAR,I_POSNEG_FLAG VARCHAR)
RETURNS BIGINT
LANGUAGE PLPGSQL
AS $body$
DECLARE
O_RET_VALUE BIGINT := 0;
V_DYN_SQL VARCHAR(2000) := '';
BEGIN
IF I_POSNEG_FLAG = 'P' THEN
V_DYN_SQL := 'SELECT MAX(' || I_COLUMN_NM || ') + 1 FROM ' || I_SCHEMA_NM || '.' || I_TABLE_NM;
ELSE
V_DYN_SQL := 'SELECT MIN(' || I_COLUMN_NM || ') - 1 FROM ' || I_SCHEMA_NM || '.' || I_TABLE_NM;
END IF;
EXECUTE V_DYN_SQL INTO O_RET_VALUE;
RETURN O_RET_VALUE;
END $body$
関数を実行するために次のコマンド例を使用しています。
{CALL GET_NEXT_SURR_KEY('some_schema_name','some_table_name','some_column_name','P')};
誰が私がどこを台無しにしているのか教えてもらえますか?
前もって感謝します。