Hibernate 调用存储过程 该语句没有返回结果集 10
以下是调用存储过程的语句,存储过程有返回值(功能是插入功能,通过return返回值为整数),但是代码报错publicintsaveStoredProcedure(fina...
以下是调用存储过程的语句 ,存储过程有返回值(功能是插入功能 ,通过return返回 值为整数),但是代码报错
public int saveStoredProcedure(final String Table,final String Type)
{
getHibernateTemplate().execute(new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException, SQLException
{
SQLQuery sqlQuery = session.createSQLQuery("{call InsertedProcedure(?,?)}");
sqlQuery.setString(0, Table);
sqlQuery.setString(1, Type);
sqlQuery.executeUpdate();
List L=sqlQuery.list();
return L.get(0);
}
});
return -2;
}
错误信息:
SEVERE: Exception occurred during processing request: Hibernate operation: could not execute query; uncategorized SQLException for SQL [{call InsertedProcedure(?,?)}]; SQL state [null]; error code [0]; 该语句没有返回结果集。; nested exception is com.microsoft.sqlserver.jdbc.SQLServerException: 该语句没有返回结果集。
请问该怎么解决??? 展开
public int saveStoredProcedure(final String Table,final String Type)
{
getHibernateTemplate().execute(new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException, SQLException
{
SQLQuery sqlQuery = session.createSQLQuery("{call InsertedProcedure(?,?)}");
sqlQuery.setString(0, Table);
sqlQuery.setString(1, Type);
sqlQuery.executeUpdate();
List L=sqlQuery.list();
return L.get(0);
}
});
return -2;
}
错误信息:
SEVERE: Exception occurred during processing request: Hibernate operation: could not execute query; uncategorized SQLException for SQL [{call InsertedProcedure(?,?)}]; SQL state [null]; error code [0]; 该语句没有返回结果集。; nested exception is com.microsoft.sqlserver.jdbc.SQLServerException: 该语句没有返回结果集。
请问该怎么解决??? 展开
3个回答
展开全部
修改存储过程试试:
alter procedure test()
as
SET NOCOUNT ON --加上这句话;有的出现这个问题,加上之后问题解决了;嘿嘿
alter procedure test()
as
SET NOCOUNT ON --加上这句话;有的出现这个问题,加上之后问题解决了;嘿嘿
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Session session =HibernateSessionFactory.getSession();
Connection conn = session.connection();
ResultSet rs =null;
CallableStatement call = conn.prepareCall("{Call procedure()}");
rs = call.executeQuery();
rs.close();
session.close();
Connection conn = session.connection();
ResultSet rs =null;
CallableStatement call = conn.prepareCall("{Call procedure()}");
rs = call.executeQuery();
rs.close();
session.close();
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-11-13
展开全部
把输出的参数注册成输出
追问
没用额 增加了OUTPUT 也不行 还是报那个错误
追答
java.sql.CallableStatement
void
registerOutParameter(int parameterIndex, int sqlType)
Registers the OUT parameter in ordinal position
parameterIndex to the JDBC type
sqlType.
void
registerOutParameter(int parameterIndex, int sqlType, int scale)
Registers the parameter in ordinal position
parameterIndex to be of JDBC type
sqlType.
void
registerOutParameter(int parameterIndex, int sqlType, String typeName)
Registers the designated output parameter.
void
registerOutParameter(String parameterName,
int sqlType)
Registers the OUT parameter named
parameterName to the JDBC type
sqlType.
void
registerOutParameter(String parameterName, int sqlType, int scale)
Registers the parameter named
parameterName to be of JDBC type
sqlType.
void
registerOutParameter(String parameterName,
int sqlType,
String typeName)
Registers the designated output parameter.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询