2016-12-25 57 views
1

看起來像jdbc模板不調用存儲過程時傳遞參數到hana db。 根據我們的分析,spring jdbc實現不能識別來自元數據的過程參數。 。我們使用標準代碼來調用proc。Hana參數化存儲過程問題簡單的jdbc模板

simpleJdbcCall = new SimpleJdbcCall(datasource).withSchemaName(getSchemaString()) 
         .withProcedureName(name); 
       results = simpleJdbcCall.execute(params); 

我們試圖尋找網,但coudnt找到令人滿意的解決方案 我也有嘗試設置paramerter明確地

simpleJdbcCall = new SimpleJdbcCall(datasource).withSchemaName(getSchemaString()) 
     .withProcedureName(name); 
    SqlParameterSource in = new MapSqlParameterSource().addValues(params); 

    results = simpleJdbcCall.execute(in); 

這裏params爲HashMap中。 仍然保持問題同樣

+0

我已經嘗試添加PARAMS明確too.missed在後earlier.updated問題增加。 – Vish

+0

我想我知道了..可以請你在回答中加上同樣的答案 – Vish

回答

1

javadoc(重點是我的):

元數據處理是基於JDBC驅動程序提供的DatabaseMetaData。由於我們依賴於JDBC驅動程序,因此該「自動檢測」只能用於已知提供準確元數據的數據庫。它們目前包括Derby,MySQL,Microsoft SQL Server,Oracle,DB2,Sybase和PostgreSQL。 對於任何其他數據庫,您需要明確聲明所有參數

我會說你需要使用SimpleJdbcCall#declareParameters(SqlParameter...)

+0

感謝它幫助 – Vish

+0

很高興它做到了;-) – 2016-12-26 09:56:08