当前位置: 首页 > 知识库问答 >
问题:

JDBC SQL Server:未为参数number设置值

夏侯腾
2023-03-14

我从java代码调用存储过程的代码中收到以下错误:

异常跟踪{}org.springframework.jdbc.UncategorizedSQLException:CallableStatementCallback;SQL得未分类SQLException[{call test.usp_xxx_GetCompanyDetails(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)}];SQL状态[null];错误代码[0];未为参数编号11设置该值。;嵌套异常为com.microsoft.sqlserver.jdbc.sqlserverexception:未为参数11设置值。在org.springframework.jdbc.support.abstractfallbacksqlexceptiontranslator.translate(abstractfallbacksqlexceptiontranslator.81)在org.springframework.jdbc.support.abstractfallbacksqlexceptiontranslator.translate(abstractfallbacksqlexceptiontranslator.81)在org.springframework.jdbc.core.jdbctemplate.execute(jdbctemplate.1095)在

该应用程序部署在WAS 8.5.5上,使用jdbc驱动程序版本4.2。重新启动服务器时,此问题没有再次发生。生成的以下call语句看起来不正确。有连续的逗号没有?他们之间。

{调用test.usp_xxx_GetCompanyDetails(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)}

存储过程有10个参数。以下是存储过程的定义

CREATE PROCEDURE [test].[usp_xxx_GetCompanyDetails]
(
    @ANumber        int,
    @CompanyId      int,
    @UserRole       varchar(15),
    @RequestId      varchar(100),
    @CompanyCode    varchar(5),
    @BaseSystem     varchar(5),
    @PType          varchar(20),    
    @PId            varchar(40),
    @IsActive       bit,     
    @responseData   xml OUT
)
 private String executeProc(Integer aNumber,Integer companyId, String baseSystem, 
                String role,String companyCode,String requestId, String pType,String pId,
                boolean isActive ) throws SQLException {

            SQLXML responseData=null;
            Map<String,Object> inputParams= new HashMap<>();
            inputParams.put("ANumber", aNumber);
            inputParams.put("CompanyId", companyId);
            inputParams.put("UserRole", role);
            inputParams.put("RequestId", requestId);
            inputParams.put("CompanyCode", companyCode);
            inputParams.put("BaseSystem", baseSystem);
            inputParams.put("PType", pType);
            inputParams.put("PId", pId);
            inputParams.put("IsActive", isActive);
            inputParams.put("ResponseData", responseData);

            Map<String, Object> result = this.execute(inputParams);
            String responseXMLString = ((SQLXML) result.get("ResponseData")).getString();

            return responseXMLString;
        }

共有1个答案

昌正奇
2023-03-14

您有11个绑定参数(?)以及空参数。将其移除以使用具有9个输入参数和1个输出参数的过程

{call test.usp_xxx_GetCompanyDetails(?, ?, ?, ?, ?, ?, ?, ?, ?, ?)}
 类似资料:
  • 问题内容: 我试图从具有2个参数的表的数据库中获取数据,当我尝试执行此代码时,它给出错误:参数未设置。我认为这是一个小错误,但我找不到。问题可能出在2个参数,我以前从未使用过2个。谁能帮我? 这是错误 问题答案: 您只需要为Datum值提供第二个参数:

  • 参数设置分为四部分:网站基本信息、统计代码、权限管理 和 安全设置 1.基本信息 1)网站基本信息:包括网站名称、网站简介、网站地址、图标样式设置等基本参数 2)统计图标显示:是指网站下方会出现我要啦的统计代码图标,可以对该图标的显示样式进行选择 (建议:设置统计图标,方便网站管理者点击图标进入报表查看统计数据) 3)页面地址显示:自定义选择是否在“入口网址”和“页面浏览”栏目中显示被浏

  • 我发送POST请求(OKHttp)从Android到Python服务器。 为什么标签为空,我在设置POST参数时丢失了一些点吗?

  • 问题内容: 我正在使用以下代码(尝试)查询数据库: 其中clientRequest [0]来自字符串数组,服务变量是POJO中的字符串,映射到MySQL数据库中的VARCHAR(45)。 当我运行此代码时,Hibernate将执行的SQL查询显示为: 这使我相信clientRequest [0]的值未正确设置为参数。 我检查了clientRequest [0]包含一个有效的String,它确实这样

  • 我在JPA 2.0中发现了非常奇怪的行为 我正在尝试构建一个看起来像这样的查询,其中 employeId 和 empDepartment 是通过 java 参数传递的长值。 但是上面的查询第一次不工作,它产生了上面的错误,但是当我第二次再次触发相同的方法时,一切都很顺利,每次都是这样,这是什么原因呢?

  • 我使用PostgreSQL和hibernate 我有这个功能: 运行我的项目后 我有这个错误: 当我运行这个查询时: 从decision中选择max(null(split_part(num_ordre_decision),“/”,3),”::int) 在数据库中我有正确的结果 例如,与数据库中的此类数据相关: 我有 1001 但我的问题和冬眠有关