首页 > 解决方案 > SPParameters 不匹配存储过程

问题描述

我已经在 Logi Analytics DevNet 中发布了这个问题,但那里是一个墓地,我希望我能在这里得到答案。我正在使用 Logi Info v12.2.116。

我正在使用存储过程来获取数据以填充我的报告。存储过程调用一个 RPG 程序。我已经这样做了很多次,但是今天当我创建一个新的存储过程,一个新的报告时,由于某种原因参数不匹配。我也重新启动了Logi...有时它在重新启动之前不会拾取新的存储过程,但这也不起作用。我以前从未见过这个错误:

设置或注册的参数值数量与参数数量不匹配

这是我的参数的代码:

<DataLayer Type="SP" Command="myStoredProcedure">
<SPParameters NullValue="'">
<SPParameter SPParamDirection="Input" ID="GAct" SPParamSize="2" SPParamType="dt-129" Value="RE" />
<SPParameter SPParamDirection="Input" ID="rsDetail" SPParamType="dt-129" Value="N" SPParamSize="1" />
<SPParameter SPParamDirection="Input" ID="rsFromDate" SPParamSize="10" SPParamType="dt-7" Value="@ Request.paramFromDate~" />
<SPParameter SPParamDirection="Input" ID="rsToDate" SPParamSize="10" SPParamType="dt-7" Value="@ Request.paramToDate~" />
<SPParameter SPParamDirection="Input" ID="rsDepts" SPParamSize="256" SPParamType="dt-129" Value="@ Request.paramAllDepartments~" />
</SPParameters>

这是存储过程的定义:

1 IN GACT         CHARACTER 2   No default
2 IN RSDETAIL     CHARACTER 1   No default 
3 IN RSFROMDATE   DATE          No default 
4 IN RSTODATE     DATE          No default
5 IN RSDEPTS      CHARACTER 256 No default

到底是什么导致了这个问题?是的,我正在连接到同一个分区/库。是的,在 Logi 外部调用时,程序和存储过程工作得非常好。是的,我正在调用正确的存储过程。

标签: stored-procedureshighchartsparameters

解决方案


改变:

<SPParameter SPParamDirection="Input" ID="GAct" SPParamSize="2" SPParamType="dt-129" Value="RE" />

至:

<SPParameter SPParamDirection="Input" ID="GAct" SPParamSize="2" SPParamType="dt-200" Value="RE" />

Char 通常被认为是单个字符,很可能是导致您的问题的原因。此外,不相关,但我通常只在我的所有 SPParams 上使用大小 0 以避免截断问题。


推荐阅读