[英]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.