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 メソッドによって返される結果セットには、次の情報が含まれます。
名前 | 種類 | 説明 |
---|---|---|
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 | 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)」を参照してください。 |
Note
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 クラス