我在本地计算机上安装了DB2,并创建了一个表名为Users的表。
从我的portlet中我正在执行一个简单的select语句:
Class.forName("com.ibm.db2.jcc.DB2Driver");
String dburl = "jdbc:db2://localhost:50001/Portlets";
conn = DriverManager.getConnection(dburl,"db2admin","password");
String selectTableSQL = "SELECT Name from Users";
statement = conn.createStatement();
ResultSet rs = statement.executeQuery(selectTableSQL);
当我执行此操作时,我得到以下异常:
com.ibm.db2.jcc.am.SqlSyntaxErrorException: DB2 SQL Error: SQLCODE=-204, SQLSTATE=42704, SQLERRMC=DB2ADMIN.USERS, DRIVER=3.62.56.
我不明白为什么我会得到这个例外。堆栈跟踪中没有任何内容。
答案 0 :(得分:3)
邮件中的SQLCODE
会告诉您实际的错误消息。 -204
是您正在寻找的错误。如果您交叉引用Information Center article about -204
,则会看到以下消息:
name 是一个未定义的名称。
如果您回顾一下例外,就会看到 name = DB2ADMIN.USERS
(SQLERRMC
字段)。
我的猜测是你找不到任何东西,因为你忘了在你的表中附加一个Schema(错误消息中假定了DB2ADMIN
部分,因为这是你的登录名。)