2012-06-19 75 views
1

任何人都知道如何在postgresql中調用自定義運算符?
我哈瓦以下操作:在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" 

任何人都知道是什麼問題?任何幫助表示讚賞。

回答

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; 
相關問題