getProcedureColumns 方法 (SQLServerDatabaseMetaData)
检索存储过程参数和结果列的说明。
语法
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 对象。
例外
备注
此 getProcedureColumns 方法是由 java.sql.DatabaseMetaData 接口中的 getProcedureColumns 方法指定的。
由 getProcedureColumns 方法返回的结果集将包含以下信息:
名称 | Type | 说明 |
---|---|---|
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();
}
}