当我使用cx_Oracle模块提取数据时,没有返回值代替Oracle NULL。此时,我正在使用以下函数将None转换为空字符串。

def xstr(s):
    if s is None:
        return ''
    return str(s)


有没有办法使cx_Oracle模块返回一个空字符串而不是None?

最佳答案

您可以使用输出类型处理程序和输出转换器进行这种转换。这样的事情。

def OutConverter(value):
    if value is None:
        return ''
    return value

def OutputTypeHandler(cursor, name, defaultType, size, precision, scale):
    if defaultType in (cx_Oracle.STRING, cx_Oracle.FIXED_CHAR):
        return cursor.var(str, size, cursor.arraysize, outconverter=OutConverter)

connection.outputtypehandler = OutputTypeHandler


上面的代码会将数据库返回的所有空字符串转换为空字符串。

关于python - 使用cx_Oracle从Oracle提取数据时,返回空字符串代替Oracle NULL/Python无,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52148595/

10-12 07:07