有没有办法让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”。 –
是否可以动态投射?因此检测类型并进行相应的转换?我事先不知道类型。 –