Connection connection = getConnection(); //getting the connection -
DatabaseMetaData dbMetaData = connection.getMetaData();
HashMap<String, Integer> paramInfo = new HashMap<String, Integer>();
if (dbMetaData != null){
ResultSet rs = dbMetaData.getProcedureColumns (null, null, sp_name.toUpperCase(), "%");
while (rs.next())
paramInfo.put(rs.getString(4), rs.getInt(6));
rs.close();
}
は注文方法の手順の列を返すgetProcedureColumns()
ていますか?データベース内でストアドプロシージャのパラメータがabc(@a int,@b int,@c int)
の場合、私はいつも@a, @b and @c
を順序通りに取得できますか?
「はい」の場合は、同じことを示すドキュメントがありますか?
さらに、SQLServerDatabaseMetaData#getProcedureColumnsソースコードは、SQL Serverシステムストアドプロシージャ 'sp_sproc_columns'を呼び出していることを示しています。このプロシージャの[documentation](https://docs.microsoft.com/en-us/sql/relational- spc-sproc-columns-transact-sql)は、 "返される結果は、PROCEDURE_QUALIFIER、PROCEDURE_OWNER、PROCEDURE_NAME、およびプロシージャ定義にパラメータが表示される順序で並べ替えられます。 –