我想獲取表名中有特殊字符的表的元數據。在正常情況下,我的代碼工作正常,但我有一個表「TABLE []} \ | ABC」,其中getColumns沒有返回任何值。DatabaseMetadata.getColumns問題與sql服務器jdbc驅動程序
ResultSet rrc = meta.getColumns("SCHEMA_NAME", null, "TABLE_NAME", "%");
此外,還有一些奇怪的行爲,我發現。只需在第一個參數中傳遞模式名稱,並在其餘3個參數中傳遞任何其他值。
ResultSet rrc = meta.getColumns("SCHEMA_NAME", null, null, "%");
while (rrc.next()) {
System.out.println("-- col: " + rrc.getString(4));
}
只要改變rrc.getString(4)(COLUMN_NAME)
到rrc.getString(3)(TABLE_NAME)
或添加其他組合,找到您收到了同樣的結果集的記錄數。它會根據您的選擇而有所不同。
這個表真的名爲'TABLE []} \ | ABC'嗎?另外,我不清楚你的問題的第二部分是什麼意思。您可能想在此添加一些說明。 –
是的。表名是「TABLE []} \ | ABC」 – Mehul