我正在忙于一段代码,以获取来自Oracle数据库的表的列名.我想出的代码看起来像这样:
DriverManager.registerDriver (new oracle.jdbc.driver.OracleDriver());
Connection conn = DriverManager.getConnection(
"jdbc:oracle:thin:@:1521:", , );
DatabaseMetaData meta = conn.getMetaData();
ResultSet columns = meta.getColumns(null, null, "EMPLOYEES", null);
int i = 1;
while (columns.next())
{
System.out.printf("%d: %s (%d)\n", i++, columns.getString("COLUMN_NAME"),
columns.getInt("ORDINAL_POSITION"));
}
当我运行这个代码让我惊喜的时候,返回了很多列.仔细观察显示,ResultSet包含一组重复的所有列,即每列返回两次.这是我得到的输出:
1: ID (1)
2: NAME (2)
3: CITY (3)
4: ID (1)
5: NAME (2)
6: CITY (3)
当我使用Oracle SQL Developer查看表格时,它显示该表只有三列(ID,NAME,CITY).我已经尝试这个代码对数据库中的几个不同的表,一些工作很好,而其他表现出这个奇怪的行为.
Oracle