Я просто нашел некоторые ... Я не знаю, что я бы назвал это, но здесь идет:длина Oracle() возвращают неверное значение
SELECT part_num,
length(trim(part_num))
FROM part_programs
WHERE rownum <= 10;
... Результаты:
PART_NUM LENGTH(TRIM(PART_NUM))
--------------- ----------------------
THAB256 8
THA1256674 11
THA1256674GU 13
THA1257141 11
THA1257141FR 13
THA1257141FR1 14
THA1257141TD 13
THA2002013 11
THA2002013MI 13
THA2002013MI1 14
Возвращаемое целое число из вызова length() фактически возвращает 1 + realLength значений.
Я не уверен, с чего начать, кто-нибудь хочет пролить свет?
Это звучит как достаточно догадка - проверить, выполнить инструкцию insert с известными данными и посмотреть, что это выводит как длину. Кроме того, если у вас есть UNIX и интерфейс командной строки SQL, попробуйте что-то вроде «oracle select part_num from part_programs | od -xcb», чтобы получить шестнадцатеричный дамп вывода - это может вызвать изворотливость символов в столбце. – paxdiablo
Брекетинг - хорошая идея - мне это нравится. Чтобы получить реальную длину, вы можете попробовать что-то вроде: length (trim (replace (replace (part_num, chr (10)), chr (13)))) –