ご存知のように、クエリに対して sql を実行すると、 を使用rs.getMetaData()
して結果のメタデータを取得できます。結果セット列を取得するために使用します。
しかし、callable を使用する場合は、OUT モードの列名の列を取得したいと考えています。どうすれば入手できますか?
ご存知のように、クエリに対して sql を実行すると、 を使用rs.getMetaData()
して結果のメタデータを取得できます。結果セット列を取得するために使用します。
しかし、callable を使用する場合は、OUT モードの列名の列を取得したいと考えています。どうすれば入手できますか?
この方法を使用できます。
java.sql.DatabaseMetaData.getColumns(文字列カタログ、文字列schemaPattern、文字列tableNamePattern、文字列columnNamePattern)
各列の説明には次の列があります。各列の説明には次の列があります。
1. TABLE_CAT String => table catalog (may be null)
2. TABLE_SCHEM String => table schema (may be null)
3. TABLE_NAME String => table name
4. COLUMN_NAME String => column name
5. DATA_TYPE int => SQL type from java.sql.Types
6. TYPE_NAME String => Data source dependent type name, for a UDT the type name is fully qualified
7. COLUMN_SIZE int => column size.
8. BUFFER_LENGTH is not used.
9. DECIMAL_DIGITS int => the number of fractional digits. Null is returned for data types where DECIMAL_DIGITS is not applicable.
10. NUM_PREC_RADIX int => Radix (typically either 10 or 2)
11. NULLABLE int => is NULL allowed.
* columnNoNulls - might not allow NULL values
* columnNullable - definitely allows NULL values
* columnNullableUnknown - nullability unknown
12. REMARKS String => comment describing column (may be null)
13. COLUMN_DEF String => default value for the column, which should be interpreted as a string when the value is enclosed in single quotes (may be null)
14. SQL_DATA_TYPE int => unused
15. SQL_DATETIME_SUB int => unused
16. CHAR_OCTET_LENGTH int => for char types the maximum number of bytes in the column
17. ORDINAL_POSITION int => index of column in table (starting at 1)
18. IS_NULLABLE String => ISO rules are used to determine the nullability for a column.
* YES --- if the parameter can include NULLs
* NO --- if the parameter cannot include NULLs
* empty string --- if the nullability for the parameter is unknown
19. SCOPE_CATLOG String => catalog of table that is the scope of a reference attribute (null if DATA_TYPE isn't REF)
20. SCOPE_SCHEMA String => schema of table that is the scope of a reference attribute (null if the DATA_TYPE isn't REF)
21. SCOPE_TABLE String => table name that this the scope of a reference attribure (null if the DATA_TYPE isn't REF)
22. SOURCE_DATA_TYPE short => source type of a distinct type or user-generated Ref type, SQL type from java.sql.Types (null if DATA_TYPE isn't DISTINCT or user-generated REF)
23. IS_AUTOINCREMENT String => Indicates whether this column is auto incremented
* YES --- if the column is auto incremented
* NO --- if the column is not auto incremented
* empty string --- if it cannot be determined whether the column is auto incremented parameter is unknown
簡単な実装:
ResultSet columns = dbmd.getColumns(null, null, tableName, null);
final List<String> columnList = new ArrayList<String>();
while (columns.next())
{
columnList.add(columns.getString(4));
}
Stored Proc Name ではなく、その tableName を確認しますか?