DatabaseMetaDataを使用して、必要な情報を取得することもできます。
すべてのストアドプロシージャとそのパラメータを取得する単純なプログラムは次のとおりです。
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
public class Main {
public static void main(String[] args) {
try {
Class.forName ("com.informix.jdbc.IfxDriver");
} catch (ClassNotFoundException e) {
System.out.println(e);
return;
}
try {
Connection conn = DriverManager.getConnection("jdbc:informix-sqli://.........");
ResultSet rsProcs;
DatabaseMetaData dbMeta = conn.getMetaData();
rsProcs = dbMeta.getProcedures(null, null, null);
while (rsProcs.next()) {
String procName = rsProcs.getString("PROCEDURE_NAME");
System.out.println(procName);
ResultSet rsParams = dbMeta.getProcedureColumns(null, null, procName, null);
while (rsParams.next()) {
System.out.println("Param " + rsParams.getString("ORDINAL_POSITION") + " :" +
" Name: " + rsParams.getString("COLUMN_NAME") +
" Type: " + rsParams.getString("COLUMN_TYPE") +
" Data Type: " + rsParams.getString("DATA_TYPE"));
}
System.out.println("");
rsParams.close();
}
rsProcs.close();
conn.close();
} catch (SQLException e) {
System.out.println(e);
}
}
}
SQLデータ型の値については、定数フィールド値のjava.sql.Typesセクションを確認してください。