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
包含程序名稱模式的字串。
col
包含資料表名稱模式的 String。 提供 null 給這個參數,將針對每個資料行傳回資料列。
傳回值
例外狀況
備註
此 getProcedureColumns 方法是由 java.sql.DatabaseMetaData 介面中的 getProcedureColumns 方法所指定。
透過 getProcedureColumns 方法所傳回的結果集將包含下列資訊:
名稱 | 類型 | Description |
---|---|---|
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 | 除了 datetime 和 ISO interval 資料類型,這個資料行與 DATA_TYPE 資料行相同。 |
SQL_DATETIME_SUB | smallint | datetime ISO interval 子代碼 (如果 SQL_DATA_TYPE 的值是 SQL_DATETIME 或 SQL_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 方法來傳回 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();
}
}