プロシージャパラメータ
DatabaseMetaData インターフェースを使用して、ストアドプロシージャ情報を取得できます。getProcedureColumns メソッドは、ストアドプロシージャパラメータの説明を返します。 結果は、ストアドプロシージャ名に基づいて制限できます。
次のコード例は、DownloadObjects ストアドプロシージャのパラメータに関する情報を出力します。
String connectionString = "jdbc:amazons3:AWSAccessKey=a123;AWSSecretKey=s123;";
Connection conn = DriverManager.getConnection(connectionString);
DatabaseMetaData meta = conn.getMetaData();
ResultSet rs=meta.getProcedureColumns(null, null, "DownloadObjects", null);
while(rs.next()) {
for(int i=1;i<=rs.getMetaData().getColumnCount();i++) {
System.out.println(rs.getMetaData().getColumnName(i) +"="+rs.getString(i));
}
}
getProcedureColumns メソッドは次のカラムを返します。
| カラム名 | データ型 | 説明 |
| PROCEDURE_CAT | String | プロシージャが属しているカタログ。 |
| PROCEDURE_SCHEM | String | プロシージャが属しているスキーマ。 |
| PROCEDURE_NAME | String | ストアドプロシージャの名前。 |
| COLUMN_NAME | String | プロシージャカラムの名前。 |
| COLUMN_TYPE | String | プロシージャカラムの種類。DatabaseMetaData の定数procedureColumnIn (1)、procedureColumnInOut (2)、procedureColumnResult (3)、procedureColumnOut (4)、およびprocedureColumnReturn (5) によって定義されます。 |
| DATA_TYPE | int | java.sql.Types で定義されているデータ型名。 |
| TYPE_NAME | String | ドライバー定義のデータ型名。 |
| PRECISION | int | 数値データに許可される桁数。 |
| LENGTH | int | 文字データの場合は、許可される文字数。数値データに許可される桁数。 |
| SCALE | short | 数値データの小数点以下の桁数。 |
| RADIX | short | 基数。 |
| NULLABLE | short | パラメータに、次のDatabaseMetaData 定数で定義されているnull を含めることができるかどうか:parameterNoNulls (0)、parameterNullable (1)、およびparameterNullableUnknown (2)。 |
| REMARKS | String | パラメータの説明。 |
| COLUMN_DEF | String | パラメータのデフォルト値。 |
| SQL_DATA_TYPE | int | 仕様で予約されています。 |
| SQL_DATETIME_SUB | int | 仕様で予約されています。 |
| CHAR_OCTET_LENGTH | int | バイナリベースおよび文字ベースのカラムの最大長。その他のデータ型ではNull。 |
| ORDINAL_POSITION | int | 出力パラメータのインデックス。 |
| IS_NULLABLE | String | カラムにnull を含めることができるかどうか。(YES またはNO)。 |
| SPECIFIC_NAME | String | スキーマ内でストアドプロシージャを一意に識別する名前。 |