我们有一个很长时间的数据库代码,它已成功运行Progress DB。最近,我们尝试使用带有JDBC 4驱动程序的SQL Server 2008.它给出了以下异常:
数据库'%'不存在。确保正确输入名称。
DatabaseMetaData conMD = connection.getMetaData();
ResultSet columns = conMD.getColumns("%", "%", m_Table, "%");
有人可以帮帮我吗?
答案 0 :(得分:0)
如果您之前获得了目录列表?
使用方法 getCatalogs()
http://download.oracle.com/javase/1.4.2/docs/api/java/sql/DatabaseMetaData.html#getCatalogs()
答案 1 :(得分:0)
如错误消息所示:您无法为数据库(目录)参数传递通配符。通配符仅允许用于架构,表和列名称。
请改用null。
conMD.getColumns(null, "%", m_Table, "%");
答案 2 :(得分:0)
conMD.getColumns(connnection.getCatalog(), "%", m_Table, "%");
而不是给%,connnection.getCatalog()
将解决问题。有趣的是代码适用于Oracle,MySql和Progress。只有Sql Server抛出错误。