如何从Oracle表中获取所有列的名称

Ste*_*gas 1 java oracle metadata

如何使用Java从Oracle表中获取所有列的名称?有没有办法从DatabaseMetaData对象中获取它们?

DatabaseMetaData myDatabaseMetaData = myConnection.getMetaData();
...
Run Code Online (Sandbox Code Playgroud)

我知道我可以使用select语句来获取它们:

Select COLUMN_NAME from user_tab_columns where table_name='MYTABLE'
Run Code Online (Sandbox Code Playgroud)

如果可以从DatabaseMetaData对象获取它们,这两种方法有什么区别?

编辑:发布工作代码(感谢您的答案)

public ArrayList<String> getAllFields(String tableName) {
    ArrayList<String> allFields = new ArrayList<String>();
    try {
        DatabaseMetaData myDatabaseMetaData = myConnection.getMetaData();
        ResultSet columnsResultSet = myDatabaseMetaData.getColumns(null, null, tableName, null);
        while (columnsResultSet.next()) { allFields.add(columnsResultSet.getString("COLUMN_NAME")); }
    } catch (SQLException ex) {
        Exceptions.printStackTrace(ex);
    }
    return allFields;
}
Run Code Online (Sandbox Code Playgroud)

a_h*_*ame 6

您正在寻找DatabaseMetaData.getColumns()

您的SQL和JDBC API之间的区别在于,API调用可以在所有DBMS上运行,而SQL只适用于Oracle.