com.ibm.db2.jcc.am.SqlSyntaxErrorException
我在本地机器上安装了DB2,并创建了一个具有列名的表Users 在我的Portlet中,我执行一个简单的select语句:com.ibm.db2.jcc.am.SqlSyntaxErrorException,db2,Db2,我在本地机器上安装了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 se
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.
我不明白为什么我会得到这个例外。堆栈跟踪中也没有什么内容。消息中的
SQLCODE
告诉您实际的错误消息<代码>-204是您正在查找的错误。如果交叉引用,您将看到以下消息:
名称是未定义的名称
如果您回顾一下您的异常,您会看到name=DB2ADMIN.USERS
(SQLERRMC
字段)
我的猜测是,您没有找到任何内容,因为您忘记将架构附加到表中(错误消息中假定了
DB2ADMIN
部分,因为这是您的登录名)。消息中的SQLCODE
告诉您实际的错误消息<代码>-204是您正在查找的错误。如果交叉引用,您将看到以下消息:
名称是未定义的名称
如果您回顾一下您的异常,您会看到name=DB2ADMIN.USERS
(SQLERRMC
字段)
我的猜测是,您没有找到任何内容,因为您忘记将架构附加到表中(错误消息中假定了
DB2ADMIN
部分,因为这是您的登录名)。消息中的SQLCODE
告诉您实际的错误消息<代码>-204是您正在查找的错误。如果交叉引用,您将看到以下消息:
名称是未定义的名称
如果您回顾一下您的异常,您会看到name=DB2ADMIN.USERS
(SQLERRMC
字段)
我的猜测是,您没有找到任何内容,因为您忘记将架构附加到表中(错误消息中假定了
DB2ADMIN
部分,因为这是您的登录名)。消息中的SQLCODE
告诉您实际的错误消息<代码>-204是您正在查找的错误。如果交叉引用,您将看到以下消息:
名称是未定义的名称
如果您回顾一下您的异常,您会看到name=DB2ADMIN.USERS
(SQLERRMC
字段)
我的猜测是,您没有找到任何内容,因为您忘记将架构附加到表中(错误消息中假定了
DB2ADMIN
部分,因为这是您的登录名)。我实际上解决了这个问题。奇怪的是,我用我的域名Sachin.Jain创建了一个表,但随后我将所有权限授予db2admin,比如select insert sql命令,即使这样,它也无法访问数据库。因此,我最终使用db2admin用户登录,然后创建了表,它工作了。我实际上解决了这个问题。奇怪的是,我用我的域名Sachin.Jain创建了一个表,但随后我将所有权限授予db2admin,比如select insert sql命令,即使这样,它也无法访问数据库。因此,我最终使用db2admin用户登录,然后创建了表,它工作了。我实际上解决了这个问题。奇怪的是,我用我的域名Sachin.Jain创建了一个表,但随后我将所有权限授予db2admin,比如select insert sql命令,即使这样,它也无法访问数据库。因此,我最终使用db2admin用户登录,然后创建了表,它工作了。我实际上解决了这个问题。奇怪的是,我用我的域名Sachin.Jain创建了一个表,但随后我将所有权限授予db2admin,比如select insert sql命令,即使这样,它也无法访问数据库。因此,我最终使用db2admin用户登录,然后创建了表,它成功了。