繁体   English   中英

即使定义了模式,DB2查询错误SQL0204N

[英]DB2 Query Error SQL0204N Even With The Schema Defined

我正在使用pyodbc访问DB2 10.1.0

我有一个名为foobar的登录帐户和一个具有相同名称的架构。 我在架构下有一个名为users的表。

当我以foobar登录时,可以从命令行成功运行以下查询:

select * from users

我有一个用于连接数据库的小型Python脚本。 脚本是:

#!/usr/bin/python

import pyodbc

if  __name__ == "__main__":

    accessString ="DRIVER={DB2};DATABASE=MYDATABASE;SERVER=localhost;UID=foobar; PWD=foobarish1;CURRENTSCHEMA=FOOBAR" 
    print accessString
    cnxn = pyodbc.connect(accessString , autocommit=True)
    cursor = cnxn.cursor()
    query = "SELECT * FROM USERS"
    cursor.execute(query)
    rows = cursor.fetchall()
    for row in rows:
        print 'Row data'
        print row[0]
    cursor.close()
    cnxn.close()

运行脚本时,出现以下错误:

(“ 42S02”,“ [42S02] [IBM] [CLI驱动程序] [DB2 / LINUXX8664] SQL0204N“ FOOBAR.USERS”是未定义的名称。SQLSTATE = 42704 \\ n(-204)(SQLExecDirectW)”)

这通常意味着未定义架构。 但是,如果我将脚本中的查询更改为:

VALUES CURRENT SCHEMA

脚本成功运行并返回

FOOBAR

有谁知道如何解决此问题,以便我可以查询用户表? 感谢您的协助和见解。

编辑:我也尝试将架构直接添加到表名称,进行查询

SELECT * FROM FOOBAR.USERS

而且我仍然遇到相同的错误。

我遇到了同样的问题,并通过设置查询显式设置了SCHEMA来解决了这个问题:

 SET CURRENT SCHEMA foobar

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM