簡體   English   中英

如何從Spring Jdbc中的存儲過程中讀取返回的值(過程中沒有參數)

[英]How read returned value from stored procedure in Spring Jdbc (without out parameters in procedure)

如何從Spring Jdbc中的存儲過程中讀取返回的值(沒有參數)?

我正在使用Sybase ASE數據庫。

程序示例:

CREATE PROCEDURE dbo.procedureA (
 @a int
)
as
begin
    IF EXISTS (SELECT 1 FROM dbo.T WHERE a = @a)
        return 1
    ELSE
        return -1
end

參考: http ://www.databaseskill.com/1270151/關鍵點是:SimpleJdbcCall.withReturnValue()指示SimpleJdbcCall對象使用鍵“ RETURN_VALUE”將返回值放入結果映射中。 因此,您可以像(Integer)simpleJdbcCall.execute()。get(“ RETURN_VALUE”)一樣訪問它

對於Sybase,不需要聲明SqlOutParameter“ RETURN_VALUE”

解決此問題的最佳方法是使用Spring-Jdbc項目中的SimpleJdbcCall

使用SimpleJdbcCall可以為此目的聲明輸入和輸出參數。

您可以這樣做:

SimpleJdbcCall simpleJdbcCall = new SimpleJdbcCall(dataSource);
simpleJdbcCall.withCatalogName("dbo");
simpleJdbcCall.withProcedureName("procedureA ");
simpleJdbcCall.setAccessCallParameterMetaData(false);
simpleJdbcCall.declareParameters(new new SqlOutParameter("a",Types.NUMERIC));
simpleJdbcCall.execute();

更多信息在這里

希望能幫助到你。

盡管我自己還沒有嘗試過,但這可能會有所幫助。

http://forum.spring.io/forum/spring-projects/data/114859-return-value-of-stored-procs-using-storedprocedure-class-and-not-simplejdbccall

public MyStoredProc(JdbcTemplate jdbcTemplate) {
    super(jdbcTemplate, "mystoredproc");
    setFunction(true);
    declareParameter(new SqlOutParameter("Result", Types.NUMERIC));
    declareParameter(new SqlInOutParameter("otherparam1", Types.INTEGER));
    declareParameter(new SqlParameter("otherparam2", Types.INTEGER));
    allowsUnusedParameters();
    compile();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM