我做了一个非常简单的查询(rpad):
SELECT
RPAD(COMERCIO,40,' ')
FROM
SIEBEL.transacciones_acumulaciones_vm
WHERE ESTADO = 'Procesado'
AND NUMERO in ( '20232385',
'20225479',
'20265516');
输出:
RESTAURANTE EL QUINC (lenght 40)
MC DONALD (lenght 9)
CARREFOUR EXPRESS-PA (lenght 40)
这里的主要问题是,几乎每1000.000行,来自特定列的文字都不会添加该空格。
答案 0 :(得分:2)
您的数据可能包含隐藏字符。在unix中,我使用cat
命令查看平面文件:
$ cat -vet my-file
...显示扩展和非打印字符。 (例如,'标签'在输出中显示为^T
。)
使用oracle,这是在文本字段中突出显示非打印字符的一种方法:
select replace(regexp_replace(COMERCIO,'[^[:print:]]', '!ACK!'),' ','.') as CAT_VET
from SIEBEL.transacciones_acumulaciones
where ESTADO = 'Procesado'
AND NUMERO in ( '20232385',
'20225479',
'20265516');
...这将显示COMERCIO
值,将任何非打印字符替换为标记!ACK!
任何带句点字符的空格。
这并不能告诉您哪些字符是问题所在,但它确实提供了问题的指导/验证。