我正在做一个非常简单的查询(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!将所有非打印字符替换为带有句点字符的空格。

这不会告诉您问题出在哪些字符上,但是可以为问题提供指导/验证。

09-04 10:21