在JS中调用SQL函数调用远程数据库的存储过程问题

背景:想在调用存储过程时传入json格式的参数到数据库中进行处理

问题:当传入的是json格式的参数时无法正常调用到存储过程

现做法:

var params = JSON.stringify(jsons_back);    

 var sql = String.format("call insert_kpi_project_work2({0})","'"+params+"','"+projecttype+"','"+projectyear+"','"+tasktype+"','"+task_state+"','"+worktask_state+"'");

var a = FR.remoteEvaluate('sql("***连接名","'+sql+'",1,1)');

对比:如果不是json格式则是能正常调用的存值的;

排除:1、存储过程在数据库直接运行输入相同的参数是能正常运行成功;2、在sql函数中直接输入参数的字符串(json格式)也无法调用。


FineReport 用户A7833092 发布于 2020-12-10 09:56
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共1回答
最佳回答
0
evprinceLv2见习互助
发布于2020-12-10 15:50

Json格式里面是带双引号的,你在调用存储过程的时候需要把转义字符'\'带进去。

  • 用户A7833092 用户A7833092(提问者) 原来是这样,解决了,谢谢大佬!没注意json转string后本身就带有“”,拼接太需要注意了。
    2020-12-10 15:52 
  • bruce888 bruce888 上传一下模板和正确的js
    2024-07-05 09:26 
  • 2关注人数
  • 753浏览人数
  • 最后回答于:2020-12-10 15:50
    请选择关闭问题的原因
    确定 取消
    返回顶部