Возвращать пустую строку вместо Oracle NULL / Python None при извлечении данных из Oracle с помощью cx_Oracle

1

Когда я извлекаю данные с помощью модуля cx_Oracle, вместо Oracle NULL возвращается None. На этом этапе я использую следующую функцию для преобразования None в пустую строку.

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

Есть ли способ заставить модуль cx_Oracle возвращать пустую строку вместо None?

Теги:
cx-oracle

1 ответ

3
Лучший ответ

Вы можете использовать выходной обработчик и выходной преобразователь, чтобы преобразовать этот путь. Что-то вроде этого.

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

Вышеприведенный код преобразует любые нулевые строки, возвращаемые из базы данных, в пустые строки.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню