Hibernateを使用してリモートストアプロシージャを呼び出そうとしています。リモートSQL Serverは、私がプロシージャを呼び出していたところからMS SQL Server 2000およびソースサーバである私は、次のエラーメッセージ取得していますストアドプロシージャを呼び出すしようとすると、MS SQL Server 2008の次のとおりです。HibernateからMS SQL Server 2008でリモートストアドプロシージャを実行できません
[2/29/12 16:44:57:971 MST] 00000016 SystemOut O 2012-02-29 16:44:57,971 WARN [org.hibernate.util.JDBCExceptionReporter] - SQL Error: 7213, SQLState: S0001
[2/29/12 16:44:57:971 MST] 00000016 SystemOut O 2012-02-29 16:44:57,971 ERROR [org.hibernate.util.JDBCExceptionReporter] - The attempt by the provider to pass remote stored procedure parameters to remote server 'EDM-SNEC-DBA3' failed. Verify that the number of parameters, the order, and the values passed are correct.
[2/29/12 16:44:57:971 MST] 00000016 SystemOut O 2012-02-29 16:44:57,971 INFO [ca.ab.gov.acys.c3p.publicweb.controller.ChildParticipationEdit] - Caught exception while executing
SQLQuery: org.hibernate.exception.SQLGrammarException: could not execute query
SQLQuery sqlQuery = this.hibernateSession.createSQLQuery(" { call [dbo].[dc_C3P_get_child_id] " + "(:surname, :firstname, :birth_dt, :facility_id, :effective_dt, :child_id) }");`
を私は次のようなストアドプロシージャに必要なすべてのパラメータを渡します。
CREATE PROCEDURE dbo.dc_C3P_get_child_id
(
@surname char(25),
@firstname char(20),
@birth_dt datetime,
@facility_id numeric(8),
@effective_dt datetime,
@child_id numeric(8) OUTPUT
)
何か助けが高く評価されます。
ありがとうございます。
あなたの目的を達成するために、単純なJDBCコール可能文を書くことができ、あなたが呼び出しされる方法のコードスニペットを投稿できますこのストアドプロシージャこのプロシージャを呼び出すには、HibernateでネイティブSQLを使用していますか?プロシージャを呼び出すために必要なすべてのパラメータを渡していますか?ストアドプロシージャの外観と、Hibernateからの呼び出し方法を投稿しないかぎり、難しいです。 – Eosphorus
SQLQuery sqlQuery = this.hibernateSession.createSQLQuery( "{dc_C3P_get_child_id]" + "012c"姓、:FIRSTNAME:birth_dt:facility_id:effective_dt:child_id)} "); 私は次のようであるストアドプロシージャのために必要なすべてののparamsを渡しています:私はすでにこれらのルールを見てきました – Manohar