在我的Java程序中,我使用JDBC访问我的PostgreSQL数据库,运行良好。试图捕获SQLExceptions并不真正有效。
我的代码:
...
catch (SQLException se) {
System.out.println("\nSQLException: " + se.getMessage());
SqlErrorCode = se.getErrorCode();
System.out.println("\nSqlErrorCode: " + SqlErrorCode);
}
...我的查询(由程序生成):
SELECT osm_id, osm_type from (SELECT osm_dach_admin_boundaries_old.osm_id,
osm_dach_admin_boundaries_old.osm_type
FROM osm_dach_admin_boundaries_old
FULL OUTER JOIN osm_dach_admin_boundaries
ON (osm_dach_admin_boundaries_old.osm_id = osm_dach_admin_boundaries.osm_id
and osm_dach_admin_boundaries_old.osm_type = osm_dach_admin_boundaries.osm_type)
WHERE (osm_dach_admin_boundaries_old.osm_id IS NULL
OR osm_dach_admin_boundaries.osm_id IS NULL)) foo
WHERE osm_id is not null order by osm_id, osm_typeXXX;注意列osm_typeXXX,我添加了该列以强制异常。
运行此查询将导致
SQLException: ERROR: column "osm_typexxx" does not exist
Hinweis: Perhaps you meant to reference the column "foo.osm_type".
Position: 533
SqlErrorCode: 0
Closing source SQL-Connection
Closing destination SQL-Connection为什么SqlErrorCode为零,我如何解决这个问题?
发布于 2022-10-04 10:47:56
java.sql.SQLException.getErrorCode()被记录为:
检索此
SQLException对象的特定于供应商的异常代码。
现在,PostgreSQL没有特定于供应商的错误代码,而是使用符合标准的SQLSTATE。
https://stackoverflow.com/questions/73946617
复制相似问题