繁体   English   中英

java.sql.SQLException:尚未设置参数#9

[英]java.sql.SQLException: Parameter #9 has not been set

你好,我正在尝试从休眠状态执行mssql存储过程。 程序有8个输入参数,没有输出。 但是我得到java.sql.SQLException:参数#9尚未设置执行。

<sql-query name="insertMyData" callable="true">
        { ? = call InsertMyData(?,?,?,?,?,?,?,?) }
</sql-query>

Java调用

Query query = m_entityManager.createNamedQuery("insertMyData");
        query.setParameter(1, transaction.getGuid());
        query.setParameter(2, new Date());

........指定其他参数

存储过程

CREATE PROC dbo.insertMyData 
    @ID uniqueidentifier, 
    ...... 7 more parameters
AS 
BEGIN
    INSERT INTO dbo.TestData VALUES (
        @ID,
           ........ 7 more parameters

    )
END

我对先前的建议不满意:

根据https://forum.hibernate.org/viewtopic.php?f=1&t=986612

另一个有相同问题的人通过删除“?=”来解决此问题,因为没有为查询定义“返回”。 我建议您尝试相同的方法。

希望这可以帮助。

好像您已经忽略了第一个? 并呼吁setParameter的只有8倍? 在过程调用中。

这是设置第一个参数的方式:

statement.registerOutParameter(1, Types.VARCHAR); //Assuming statement is your CallableStatement and return type of procedure is Varchar

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM