繁体   English   中英

web.input在cx_Oracle中失败

[英]web.input fails in cx_Oracle

我有一个网络服务器,并将用户数据添加到我的sql查询中。 它适用于psycopg,但不适用于cx_Oracle。

...
class grid:
    def GET(self):
        web.header('Access-Control-Allow-Origin', '*')
        web.header('Access-Control-Allow-Credentials', 'true')
        web.header('Content-Type', 'application/json')

        data = web.input(ID='')
        ido = int(data.ID)
        a = [ido]

        cur = connection.cursor()
        cur.arraysize = 10000

        query = "SELECT a.id AS building_nr, c.geometry.sdo_ordinates AS geometry, d.Classname AS polygon_typ FROM   building a, THEMATIC_SURFACE b, SURFACE_GEOMETRY c, OBJECTCLASS d  WHERE   a.id = b.BUILDING_ID AND b.LOD2_MULTI_SURFACE_ID = c.ROOT_ID AND c.GEOMETRY IS NOT NULL AND b.OBJECTCLASS_ID = d.ID AND a.grid_id_500 = %s;"

        cur.execute(query, a)

它一直工作到execute语句。 我收到错误消息: 'ascii'编解码器无法解码位置36的字节0xfc:序数不在范围内(128)

如何将数据添加到查询中?

我知道怎么了 我不应该将%s用作数据。 显然,cx_Oracle默认为“命名” paramstyle。

data = web.input(ID='')
query = "SELECT ... FROM... WHERE a.id =:grid_id "
cursor.execute(query, {'grid_id':data.ID})

暂无
暂无

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

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