com.ibm.db2.jcc.am.SqlSyntaxErrorException

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

我在本地机器上安装了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.

我不明白为什么我会得到这个例外。堆栈跟踪中也没有什么内容。

消息中的
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用户登录,然后创建了表,它成功了。