rpad 无法正常工作

rpad doesn't work correctly

我正在做一个非常简单的查询 (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)

这里的主要问题是几乎每 1.000.000 行来自特定列的文字不会添加该空格。

您的数据可能有隐藏字符。在 unix 中,我使用 cat 命令查看平面文件:

$ cat -vet my-file ... 显示扩展字符和非打印字符。 (例如,'tab' 在输出中显示为 ^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! 任何带句点字符的空格。

这不会告诉您哪些字符有问题,但它确实提供了 guidance/verification 个问题。