3

Oracle では、ストアド プロシージャのメタデータを取得できます。

 DatabaseMetaData dbMetaData = conn.getMetaData();
 ResultSet rs = dbMetaData.getProcedureColumns(conn.getCatalog(),
                          null,
                          "procedureNamePattern",
                          "columnNamePattern");

  while(rs.next()) {
      // get stored procedure metadata
      String procedureCatalog     = rs.getString(1);
      String procedureSchema      = rs.getString(2);
      String procedureName        = rs.getString(3);
      String columnName           = rs.getString(4);
      short  columnReturn         = rs.getShort(5);
      int    columnDataType       = rs.getInt(6);
      String columnReturnTypeName = rs.getString(7);
  }

しかし、関数ではデータが返されません:

DatabaseMetaData.getFunctionColumns()

Oracle 関数のメタデータを取得する方法

4

2 に答える 2

1

それは良くありませんが、私は私のために働いています:

select ARGUMENT_NAME, DATA_TYPE, IN_OUT from SYS.ALL_ARGUMENTS where object_name = upper(?) order by position as

次に、Javaで取得できます

String columnName = rs.getString("ARGUMENT_NAME");
if (index == 0) {
    columnName = RETURN_VALUE;
}
String columnDataTypeInString = rs.getString("DATA_TYPE");
String columnReturnInString = rs.getString("IN_OUT");
于 2014-06-13T08:05:50.367 に答える