getProcedureColumns 方法 (SQLServerDatabaseMetaData)

下载 JDBC 驱动程序

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

语法

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

参数

sCatalog

一个包含目录名称的字符串 。 对此参数提供 Null 值指示无需使用目录名称。

sSchema

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

proc

一个包含过程名称模式的字符串

col

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

返回值

一个 SQLServerResultSet 对象。

例外

SQLServerException

备注

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

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

名称 类型 说明
PROCEDURE_CAT 字符串 指定的存储过程所在数据库的名称。
PROCEDURE_SCHEM 字符串 存储过程的架构。
PROCEDURE_NAME 字符串 存储过程的名称。
COLUMN_NAME 字符串 列的名称。
COLUMN_TYPE short 列的类型。 可以为下列值之一:

procedureColumnUnknown (0)

procedureColumnIn (1)

procedureColumnInOut (2)

procedureColumnOut (4)

procedureColumnReturn (5)

procedureColumnResult (3)
DATA_TYPE smallint 来自 java.sql.Types 的 SQL 数据类型。
TYPE_NAME 字符串 数据类型的名称。
PRECISION int 有效数字总个数。
LENGTH int 数据的长度(字节)。
SCALE short 小数点右边的数字位数。
RADIX short 数值类型的基数。
NULLABLE short 指示列能否包含 Null 值。 可以为下列值之一:

procedureNoNulls (0)

procedureNullable (1)

procedureNullableUnknown (2)
REMARKS 字符串 过程列的说明。



注意:QL Server 不会为此列返回值。
COLUMN_DEF 字符串 列的默认值。
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 字符串 指示列是否允许 Null 值。
SS_TYPE_CATALOG_NAME 字符串 包含用户定义类型 (UDT) 的目录名称。
SS_TYPE_SCHEMA_NAME 字符串 包含用户定义类型 (UDT) 的架构名称。
SS_UDT_CATALOG_NAME 字符串 采用完全限定名称的用户定义类型 (UDT)。
SS_UDT_SCHEMA_NAME 字符串 在其中定义 XML 架构集合名称的目录的名称。 如果找不到目录名称,此变量则会包含一个空字符串。
SS_UDT_ASSEMBLY_TYPE_NAME 字符串 在其中定义 XML 架构集合名称的架构的名称。 如果找不到架构名称,则为空字符串。
SS_XML_SCHEMACOLLECTION_CATALOG_NAME 字符串 XML 架构集合的名称。 如果找不到名称,则为空字符串。
SS_XML_SCHEMACOLLECTION_SCHEMA_NAME 字符串 包含用户定义类型 (UDT) 的目录名称。
SS_XML_SCHEMACOLLECTION_NAME 字符串 包含用户定义类型 (UDT) 的架构名称。
SS_DATA_TYPE tinyint 扩展存储过程使用的 SQL Server 数据类型。



注意:有关 SQL Server 返回的数据类型的详细信息,请参阅 SQL Server 联机丛书中的“数据类型 (Transact-SQL)”。

注意

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

示例

以下示例演示了如何使用 getProcedureColumns 方法返回有关 AdventureWorks2022 示例数据库中的 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 类