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

语法

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_DATETIMESQL_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 2005 AdventureWorks 示例数据库中的 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 成员