a1419362866 2019-03-24 11:46 采纳率: 33.3%
浏览 279
已采纳

这生产的python数据库对象为什么不能使用啊

import threading,cx_Oracle
from time import sleep
from MainAction import StartClass
class controlclass(object):
def init(self,startflag,user='hr',pwd='687092',ipname='192.168.#####/###'):
self.startflag = startflag
self.conn = cx_Oracle.connect(user, pwd, ipname)
self.cursor = self.conn.cursor()

def __str__(self):
    return self.startflag

def __call__(self):
    if self.startflag == '1':
        sql = 'SELECT t.taskid,t.circlestype FROM  d_task t where t.circlestype=\'2\''
        try:
            while True:
                main_object = self.cursor.execute(sql)
                print(main_object)
                if main_object is None:
                    print('查询主任务是否有循环启动状态的SQL错误')
                elif len(main_object) == 0:
                    print('没有循环启动的主任务')
                else:
                    print('返回查看满足状态的主任务')
                sleep(1)
        except Exception as x:
            print('单条SQL执行(查询SQL)失败')
            print(x)
            print(sql)
            self.cursor.close()
            self.conn.close()

if name == '__main__':
cs = controlclass('1')
cs()

>
单条SQL执行(查询SQL)失败
object of type 'cx_Oracle.Cursor' has no len()
SELECT t.taskid,t.circlestype FROM d_task t where t.circlestype='2'

  • 写回答

1条回答 默认 最新

  • 502203305 2019-03-24 11:52
    关注

    建议使用dir函数或者是vars函数来判断这个函数的返回结果类型。
    这个提示了你Curor对象没有len。可以试试main_object.fecthall().

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 使用ue5插件narrative时如何切换关卡也保存叙事任务记录
  • ¥20 软件测试决策法疑问求解答
  • ¥15 win11 23H2删除推荐的项目,支持注册表等
  • ¥15 matlab 用yalmip搭建模型,cplex求解,线性化处理的方法
  • ¥15 qt6.6.3 基于百度云的语音识别 不会改
  • ¥15 关于#目标检测#的问题:大概就是类似后台自动检测某下架商品的库存,在他监测到该商品上架并且可以购买的瞬间点击立即购买下单
  • ¥15 神经网络怎么把隐含层变量融合到损失函数中?
  • ¥15 lingo18勾选global solver求解使用的算法
  • ¥15 全部备份安卓app数据包括密码,可以复制到另一手机上运行
  • ¥20 测距传感器数据手册i2c