检索存储过程参数和结果列的说明。
语法
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 值将为每一列返回一行。
返回值
异常
注释
此 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(); } }