1

postgresqlで自己定義演算子を呼び出す方法を知っている人はいますか?
次の演算子があります。

CREATE OR REPLACE FUNCTION algo.fun_temp(IN exp BOOLEAN)
RETURNS INTEGER AS $$
BEGIN
    RETURN NOT exp;
END;
$$ LANGUAGE plpgsql;

CREATE OPERATOR algo.~
(
PROCEDURE = algo.fun_temp,
RIGHTARG = BOOLEAN
);

そして、この演算子を で呼び出そうとするとSELECT algo.~ TRUE、クライアントが文句を言います

"ERROR:  syntax error at or near "~"
LINE 1: SELECT algo.~ TRUE"

誰が問題が何であるか知っていますか?どんな助けでも大歓迎です。

チェン

4

1 に答える 1

1

関数はINTEGER、あなたが書いたものを返す必要がありますBOOLEAN

CREATE OR REPLACE FUNCTION algo.fun_temp(IN exp BOOLEAN)
RETURNS INTEGER AS $$
BEGIN
    RETURN (NOT exp)::INTEGER;
END;
$$ LANGUAGE plpgsql;

次に、スキーマalgoをに追加しsearch_pathます。

SET search_path = public, algo;
于 2012-06-19T21:17:56.947 に答える