databasemetadata getProcedurecolumns存储过程列名称顺序



我使用databasemetadata获取SQL Server上存储过程的列(读取参数):

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吗?

如果是,是否有任何文件建议?

所有JDBC驱动程序都必须遵循JDBC规范和API文档,并且DatabaseMetaData.getProcedureColumns的API文档指定:

检索给定目录的存储过程的描述 参数和结果列。

仅与架构,过程和参数名称匹配的描述 返回标准。它们由PROCEDURE_CAT订购, PROCEDURE_SCHEMPROCEDURE_NAMESPECIFIC_NAME。在此, 返回值(如果有)是首先。下一个是参数 按呼叫顺序描述。列描述列入列 数字订单。

如果驱动程序不遵循此规范,则是驱动程序中的错误。因此,通常您应该能够依靠上述描述。

否则,检查列中的值COLUMN_TYPE(索引5),该值指定了类型(参数,结果集列等)和ORDINAL_POSITION(索引18)(索引18),该(索引18)描述了位置(在Javadoc中检查详细信息)。

相关内容

  • 没有找到相关文章

最新更新