CREATE OR REPLACE FUNCTION public.writecalculations(id integer, times integer, j json)
RETURNS text
LANGUAGE plv8
AS
$body$
var overallStart = new Date();
var result = 0;
var insertStmt = "Insert into \"CalculationResult\" Values($1,$2,$3::json)"
result += plv8.execute(insertStmt,[id, times, j]);
var loopEnd = new Date();
return JSON.stringify({"AffectedRows": result, "OverallRuntime": loopEnd-overallStart}) ;
$body$
IMMUTABLE STRICT
COST 100;
COMMIT;
使用
执行时会出错WbCall calculationResult(4,4,'{\"a\":1}');
错误:
执行SQL命令时发生错误: 错误:函数calculateresult(整数,整数,未知)不存在 提示:没有函数匹配给定的名称和参数类型。您可能需要>添加显式类型转换。 位置:15 [SQL State = 42883]
我做错了什么? 我尝试了使用""传递文本的各种选项。和''并且也作为传递json
答案 0 :(得分:1)
尝试:
WbCall calculationResult(4,4,'{"a":1}'::json);
calculationresult(整数,整数,未知) - PostgreSQL没有检测到'{“a”:1}'的类型,所以它要求你添加显式类型转换。