postgres json参数到函数

时间:2015-12-22 12:22:44

标签: json postgresql

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

1 个答案:

答案 0 :(得分:1)

尝试:

WbCall calculationResult(4,4,'{"a":1}'::json);

calculationresult(整数,整数,未知) - PostgreSQL没有检测到'{“a”:1}'的类型,所以它要求你添加显式类型转换。