首先,我要处理的SQL:

CREATE OR REPLACE TYPE address_t AS OBJECT
(
street      VARCHAR2(80),
city        VARCHAR2(80),
state_abbr  CHAR(2),
zip_code    DECIMAL(5)
)
/

CREATE TABLE branch
(
id      DECIMAL(12) NOT NULL,
address     address_t
PRIMARY KEY(id)
)
/

我已经验证了数据库中的数据正确(放入一些测试数据之后)。 我现在尝试编写一个JSONEncoder来将Oracle address_t类型解析为可序列化的JSON类型。 这是我一直在玩的功能:

class ObjectParser(json.JSONEncoder):
    def default(self, o): 
        if str(type(o)) == "<type 'cx_Oracle.OBJECT'>":
            print "Zipcode: %s" % o.ZIP_CODE
            if str(o.type).find("ADDRESS_T") != -1:
                return { "street" : o.STREET, "city": o.CITY, 
                         "state_abbr": o.STATE_ABBR,  "zip_code": o.ZIP_CODE }
            elif str(o.type).find("PHONENUMBER_T") != -1:
                return { "area_code" : o.AREA_CODE, 
                         "phone_number": o.PHONE_NUMBER }
        return json.JSONEncoder.default(self, o)

# ...
con = getdb()
cur = con.cursor()
cur.execute("SELECT * FROM BRANCH")
res = cursor.fetchall()
print json.dumps(res, cls=ObjectParser)

在上面写着Zipcode:的那一行上,我在那里拥有了address_t类型的所有其他属性,并且它们可以很好地打印出来。 有任何想法吗?

这是实际的错误:

File "query.py", line 14, in default
  print "Zipcode: %s" % o.ZIP_CODE
  cx_Oracle.NotSupportedError: ExternalObjectVar_GetAttributeValue(): 
      unhandled data type 7

  ask by Pat translate from so

本文未有回复,本站智能推荐:

1回复

cx_Oracle:未处理的数据类型250

我有代码: 在字符串返回obj.aslist()时出现错误: 有什么事吗
1回复

使用Python访问Json变量时出现cx_Oracle错误

我是Python新手,无法获取Json变量。 如您在上面的代码中看到的,我在代码的中间打印了一个打印,引用了下面的错误说没有属性的确切字段。 从那时起,我感谢您的关注。
2回复

使用cx_Oracle和多处理并发查询数据

所有, 我正在尝试从Oracle数据库访问和处理大量数据。 因此,我使用多处理模块生成了50个进程来访问数据库。 为了避免打开50个物理连接,我尝试使用cx_Oracle的会话池。 因此,代码如下所示。 但是,我总是遇到一个无法解决的错误。 我知道cx_Oracle有酸洗问题,但
1回复

数据库:使用cx_oracle通过python检查数据类型

例如,如果我有以下代码: 我需要检查“ sin”是否为整数,或者说是oracle数据类型中的“ INT”。 以及性别是f还是m。 我怎样才能做到这一点? 是否有与以下方法不同的方法: 上面的两个属性将通过SQL语句插入到我的数据库中 我正在使用cx_Oracl
2回复

使用cx_Oracle进行批量插入:数据类型不一致

我正在尝试使用Python和cx_Oracle将大量记录加载到Oracle DB中。 的共识似乎是,你应该准备一个光标, executemany针对行的列表(每本岗位)。 所以我的代码看起来像: 我传递的值如下所示: 问题是SDE.ST_Geometry()数据库函数被视为文
1回复

导入cx_oracle时出现问题

我有一个使用cx_Oracle(在virtualenv内)的Python项目(在Ubuntu 12.04上运行)。 运行项目时,导入此模块没有问题。 现在,我想使用主管来控制我的项目。 当我从主管启动项目时,启动崩溃并引发此异常: 我遵循了该站点以及另一个站点的指示。 但是我无法
1回复

读取lob时出现cx_Oracle MemoryError

当尝试使用cx_Oralce从lob字段读取数据时,我收到“exceptions.MemoryError”。 这个代码一直在工作,这个一个lob领域似乎太大了。
1回复

cx_oracle错误处理问题

我正在尝试在cx_Oracle中执行以下查询,但是在执行时出现以下错误: 码:
2回复

在Flask App中运行Cx_Oracle查询

我正在尝试构建一个具有页面的应用程序,在该页面上我输入ID并对该页面运行查询并显示结果。 我到目前为止的代码如下。 我有一个werkzeug错误: app.py
1回复

使用cx_oracle绑定变量时出现ORA-01036错误

当尝试解决一个函数并绑定一些参数时,即时通讯会不断得到奇怪的结果 我试图在vars中使用不同的变量名称和不同的数字,但是没有运气 res_sum = -1 good_id = 430815501 self.cur.prepare(":smt