[SQLServer]Could not find stored procedure (procedure existe)

8 respostas
lgr

Ao tentar chamar uma procedure está acontece erro :

[[Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]Could not find stored procedure 'selecionaPerfil'.]

no entanto o mapeamento parece estar correto.a procedure existe.

] <sql-query name="selecionaPerfil_SP" callable="true"> <return-scalar column="RESULTADO" type="integer"/> {call selecionaPerfil( ? ) } </sql-query>

poderia ser um problema de tipo da base?
alguem pode ajudar?

obrigado

8 Respostas

E

“selecionaPerfil” != “selecionaPerfil_SP”. Mais atenção…

viniciusfaleiro

hahahahh… ta lezado já!

lgr

Estou entendendo que o problema é no nome da procedure em si não no nome da procedure no mapeamento.entende?

se eu estivesse chamando o "nome do mapeamento" errado seria algo do tipo:

org.hibernate.MappingException: Named query not known: selecionaPerfil_SP, não?

eu fiz o teste aqui mudando o valor da constante para “selecionaPerfil” esse erro acima.Ou seja se o valor da constante for “selecionaPerfil_SP” está entendendo o mapeamento, correto?

getLogManager().debug(this.getClass(), "Executando store Procedure --> selecionaPerfil");
              Query query = session.getNamedQuery(DAOConstants.SP_PERFIL_SESSAO);
              query.setString(0, numControl);


              // Executamos a query con resultado unico
              Integer teste = (Integer)query.uniqueResult();

Onde SP_PERFIL_SESSAO é uma constante com valor "selecionaPerfil"

lgr

viniciusfaleiro , Se puder ajudar seria uma boa.
O problema não é exatamente este.

obrigado.

viniciusfaleiro

Cara… não é soh ver o nome da procedure no banco e fazer o mapeamento… tipo um cara crachá??? me parece que ta na mesma ainda!

lgr

A procedure no banco chama “selecionaPerfil” mesmo.
Eu mapei outras procedures aqui e deu certo. o nome é este mesmo na base.

E

A procedure selecionaPerfil está no mesmo database padrão mencionado na string de conexão com o SQL Server? Cuidado que muita gente se esquece desse detalhe. Por exemplo, muita gente desenvolve no database “master” (que é o padrão) e acaba tendo problemas porque ao instalar o sistema o database tem de ser outro - o “master” não serve nem para desenvolvimento.

lgr

Foi esse problema mesmo.
Valeu.
Mas não estou tão lesado assim!rss.

Criado 11 de janeiro de 2010
Ultima resposta 11 de jan. de 2010
Respostas 8
Participantes 3