我正在做一个非常简单的查询(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!
将所有非打印字符替换为带有句点字符的空格。这不会告诉您问题出在哪些字符上,但是可以为问题提供指导/验证。