I am not an MSSQL user, but you do want to ensure that the stored proc you called from Hibernate DOES return a result set. The error indicate that the stored proc Hibernate called returned a result set without the columns you specified in the mapping.
Looking at your store proc, not sure why you want to store your sql string into variable and then call a exec. Can't you just execute that select as last statement without the exec? Give that a try and see. Again I am not a MSSQL user, so can't help you there.
Also, to clearify, there is no difference between an internal store proc or external one. To hibernate, a stored proc is just a native sql it executes, it doesn't care what you do inside there. But there is some general rules that stored proc MUST follow in other for Hibernate to use it. Read
http://docs.jboss.org/hibernate/stable/ ... /#sp_query