有沒有辦法讓PostgreSQL中的函數返回任意類型?返回任意類型的PostgreSQL函數
我想用PLV8來抓取和比較PostgreSQL 9.2中JSON類型的字段。
以下工作:
CREATE or replace FUNCTION jn (j json, key any) RETURNS numeric
LANGUAGE plv8
IMMUTABLE
AS $function$
var ej = JSON.parse(j);
if (typeof ej != 'object') return NULL;
return JSON.stringify(ej[key]);
$function$;
SELECT * FROM things WHERE jn(data,'count') <= '10';
返還其中計數字段是< = 10。但是,如果該字段不是數字它將失敗。 我不想爲我的json可能持有的每種類型的數據創建特定的函數,是否有辦法以某種方式推斷數據類型並隱式轉換?
又見How do I query using fields inside the new PostgreSQL JSON datatype?
是的,我碰到「錯誤:錯誤:PL/V8函數不能返回類型anyelement」。 –
是否可以動態投射?因此檢測類型並進行相應的轉換?我事先不知道類型。 –