NutzCN Logo
问答 Nutz调用存储过程出错
发布于 2170天前 作者 xiciliu 1928 次浏览 复制 上一个帖子 下一个帖子
标签:

下面两种发放,都出现了错误。
存储过程在Management Studio中是可以正确执行的。

/*
		//
		//String bakSQL = "exec up_clear_db() ";//
		//Sql sql=Sqls.create(bakSQL);
		*/
		//
		String bakSQL = "call up_clear_db() ";
		Sql sql=Sqls.fetchEntity(bakSQL);
		
		DBFactory.getDao().execute(sql);

错误为

Caused by: org.nutz.dao.DaoException: !Nutz SQL Error: 'call up_clear_db()'
PreparedStatement: 
'call up_clear_db()'
	at org.nutz.dao.impl.sql.run.NutDaoExecutor.exec(NutDaoExecutor.java:95)
	at org.nutz.dao.impl.DaoSupport$DaoExec.invoke(DaoSupport.java:250)
	at org.nutz.dao.impl.sql.run.NutDaoRunner.run(NutDaoRunner.java:64)
	... 32 more
Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: Incorrect syntax near ')'.
	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:197)
	at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(SQLServerStatement.java:1493)
8 回复

试试

{call up_clear_db()}

是打上花括号?

不行,提示这个了

org.nutz.dao.DaoException: java.lang.RuntimeException: SQL without entity : {call up_clear_db()}

没记错的话,这几句代码在 以前的nutz版本中可以执行。
今天拿出来跑,发现就出错了。运行环境只是升级了jdk和nutz。

用了fetchEntity就需要setEntity,否则用create就好了

@wendal 对了!谢谢老大!

String bakSQL = "{call up_clear_db()}";
Sql sql=Sqls.create(bakSQL);
添加回复
请先登陆
回到顶部