getProcedureColumns 方法 (SQLServerDatabaseMetaData)

检索存储过程参数和结果列的说明。

# 语法

    public java.sql.ResultSet getProcedureColumns(java.lang.String sCatalog,
    java.lang.String sSchema,
    java.lang.String proc,
    java.lang.String col)

# 参数

sCatalog

包含目录名称的 String 值。对此参数提供 Null 值指示无需使用目录名称。

sSchema

包含架构名称模式的 String 值。对此参数提供 Null 值指示无需使用架构名称。

proc

包含过程名称模式的 String 值。

col

包含列名称模式的 String 值。对此参数提供 Null 值将为每一列返回一行。

# 返回值

SQLServerResultSet 对象。

# 异常

SQLServerException

# 注释

此 getProcedureColumns 方法由 java.sql.DatabaseMetaData 接口中的 getProcedureColumns 方法指定。

由 getProcedureColumns 方法返回的结果集将包含下列信息：

名称 | 类型 | 说明
--- | --- | ---
PROCEDURE_CAT | String | 指定的存储过程所在数据库的名称。
PROCEDURE_SCHEM | String | 存储过程的架构。
PROCEDURE_NAME | String | 存储过程的名称。
COLUMN_NAME | String | 列的名称。
COLUMN_TYPE | short | 列的类型。可以是下列值之一： procedureColumnUnknown (0) procedureColumnIn (1) procedureColumnInOut (2) procedureColumnOut (4) procedureColumnReturn (5) procedureColumnResult (3)
DATA_TYPE | smallint | 来自 java.sql.Types 的 SQL 数据类型。
TYPE_NAME | String | 数据类型的名称。
PRECISION | int | 有效数字总个数。
LENGTH | int | 数据的长度（字节）。
SCALE | short | 小数点右边的数字位数。
RADIX | short | 数值类型的基数。
NULLABLE | short | 指示列能否包含 Null 值。可以是下列值之一： procedureNoNulls (0) procedureNullable (1) procedureNullableUnknown (2)
REMARKS | String | 过程列的说明。 SQL Server 不为此列返回值。
COLUMN_DEF | String | 列的默认值。
SQL_DATA_TYPE | smallint | 此列与 DATA_TYPE 列相同，但 datetime 和 ISO interval 数据类型除外。
SQL_DATETIME_SUB | smallint | 如果 SQL_DATA_TYPE 的值为 SQL_DATETIME 或 SQL_INTERVAL，则为 datetime ISO interval 子代码。对于 datetime 和 ISO interval 以外的数据类型，此列为 NULL。
CHAR_OCTET_LENGTH | int | 列中的最大字节数。
ORDINAL_POSITION | int | 列在表中的索引。
IS_NULLABLE | String | 指示列是否允许 Null 值。
SS_TYPE_CATALOG_NAME | String | 包含用户定义类型 (UDT) 的目录名称。
SS_TYPE_SCHEMA_NAME | String | 包含用户定义类型 (UDT) 的架构名称。
SS_UDT_CATALOG_NAME | String | 采用完全限定名称的用户定义类型 (UDT)。
SS_UDT_SCHEMA_NAME | String | 在其中定义 XML 架构集合名称的目录的名称。如果找不到目录名称，则此变量包含空字符串。
SS_UDT_ASSEMBLY_TYPE_NAME | String | 在其中定义 XML 架构集合名称的架构的名称。如果找不到架构名称，则为空字符串。
SS_XML_SCHEMACOLLECTION_CATALOG_NAME | String | XML 架构集合的名称。如果找不到名称，则为空字符串。
SS_XML_SCHEMACOLLECTION_SCHEMA_NAME | String | 包含用户定义类型 (UDT) 的目录名称。
SS_XML_SCHEMACOLLECTION_NAME | String | 包含用户定义类型 (UDT) 的架构名称。
SS_DATA_TYPE | tinyint | 扩展存储过程使用的 SQL Server 数据类型。 有关 SQL Server 返回的数据类型的详细信息，请参阅 SQL Server 联机丛书中的“数据类型 (Transact-SQL)”。

有关 getProcedureColumns 方法返回的数据的详细信息，请参阅 SQL Server 联机丛书中的“"sp_sproc_columns (Transact-SQL)”。

# 示例

下例演示了如何使用 getProcedureColumns 方法返回有关 SQL Server 2005AdventureWorks 示例数据库中的 uspGetBillOfMaterials 存储过程的信息。

    public static void executeGetProcedureColumns(Connection con) {
       try {
          DatabaseMetaData dbmd = con.getMetaData();
          ResultSet rs = dbmd.getProcedureColumns(null, null, "uspGetBillOfMaterials", null);
          ResultSetMetaData rsmd = rs.getMetaData();

          // Display the result set data.
          int cols = rsmd.getColumnCount();
          while(rs.next()) {
             for (int i = 1; i <= cols; i++) {
                System.out.println(rs.getString(i));
             }
          }
          rs.close();
       }

       catch (Exception e) {
          e.printStackTrace();
       }
    }

# 请参阅

SQLServerDatabaseMetaData 类
SQLServerDatabaseMetaData 成员
发送有关本主题的反馈至 Microsoft。

© 2012 Microsoft。保留所有权利。