簡體   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