No Oracle, o
TRIM() A função permite aparar caracteres dos lados de uma string. Você pode cortar caracteres iniciais, caracteres finais ou ambos.
Por padrão, ele apara o espaço em branco, mas você pode especificar opcionalmente um caractere ou caracteres diferentes para aparar.
Sintaxe
A sintaxe fica assim:
TRIM([ { { LEADING | TRAILING | BOTH }
[ trim_character ]
| trim_character
}
FROM
]
trim_source
) Ambos
trim_character e trim_source pode ser VARCHAR2 ou qualquer tipo de dados que possa ser convertido implicitamente em VARCHAR2 . Exemplo
Aqui está um exemplo simples para demonstrar:
SELECT TRIM('.' FROM '...Cat...')
FROM DUAL; Resultado:
TRIM('.'FROM'...CAT...')
___________________________
Cat Neste caso, o caractere especificado (
. ) foi removido de ambos os lados da corda. Foi removido de ambos os lados porque não especifiquei de qual lado removê-lo.
Podemos obter o mesmo resultado incluindo o
BOTH palavra-chave:SELECT TRIM(BOTH '.' FROM '...Cat...')
FROM DUAL; Resultado:
TRIM(BOTH'.'FROM'...CAT...') _______________________________ Cat
Aparar personagens principais
Aqui está novamente, mas com apenas os personagens principais removidos:
SELECT TRIM(LEADING '.' FROM '...Cat...')
FROM DUAL; Resultado:
TRIM(LEADING'.'FROM'...CAT...') __________________________________ Cat...
Aparar caracteres à direita
E aqui está com apenas os caracteres à direita removidos:
SELECT TRIM(TRAILING '.' FROM '...Cat...')
FROM DUAL; Resultado:
TRIM(TRAILING'.'FROM'...CAT...') ___________________________________ ...Cat
Caractere padrão
Neste exemplo, não especifico o caractere a ser aparado, portanto, ele apara o espaço em branco:
SELECT TRIM(' Cat ')
FROM DUAL; Resultado:
TRIM('CAT')
______________
Cat Não é tão fácil ver o efeito ao aparar espaços em branco de ambos os lados.
Aqui está outro exemplo que torna mais fácil ver que o espaço em branco foi removido de ambos os lados:
SELECT
'My' || ' Fat ' || 'Cat',
'My' || TRIM(' Fat ') || 'Cat'
FROM DUAL; Resultado:
'MY'||'FAT'||'CAT' 'MY'||TRIM('FAT')||'CAT'
_____________________ ___________________________
My Fat Cat MyFatCat Números
A string e o caractere de corte podem ser
VARCHAR2 ou qualquer tipo de dados que possa ser convertido implicitamente em VARCHAR2 , para que possamos passar um número como o seguinte. No entanto, o valor de retorno é VARCHAR2 . SELECT TRIM(LEADING 0 FROM 007)
FROM DUAL; Resultado:
TRIM(LEADING0FROM007) ________________________ 7
Aqui está com um número diferente sendo aparado:
SELECT TRIM(LEADING 1 FROM 117)
FROM DUAL; Resultado:
TRIM(LEADING1FROM117) ________________________ 7
Valores nulos
Se a string ou o caractere de corte for
null o resultado é null :SET NULL 'null';
SELECT
TRIM(null FROM '...Cat...'),
TRIM(BOTH FROM null),
TRIM(null FROM null)
FROM DUAL; Resultado:
TRIM(NULLFROM'...CAT...') TRIM(BOTHFROMNULL) TRIM(NULLFROMNULL) ____________________________ _____________________ _____________________ null null null
Por padrão, SQLcl e SQL*Plus retornam um espaço em branco sempre que
null ocorre como resultado de um SQL SELECT demonstração. No entanto, você pode usar
SET NULL para especificar uma string diferente a ser retornada. Aqui eu especifiquei que a string null deve ser devolvido. Cortando Strings Vazias
Passar uma string vazia como o caractere de corte resulta em
null :SET NULL 'null';
SELECT TRIM('' FROM ' Cat')
FROM DUAL; Resultado:
TRIM(''FROM'CAT')
____________________
null Mas adicionar um único espaço à string vazia muda isso e corta todos os espaços em branco da string:
SET NULL 'null';
SELECT TRIM(' ' FROM ' Cat')
FROM DUAL; Resultado:
TRIM(''FROM'CAT')
____________________
Cat Contagem incorreta de argumentos
Chamando
TRIM() sem passar nenhum argumento retorna um erro:SELECT TRIM()
FROM DUAL; Resultado:
Error starting at line : 1 in command - SELECT TRIM() FROM DUAL Error at Command Line : 1 Column : 13 Error report - SQL Error: ORA-00936: missing expression 00936. 00000 - "missing expression" *Cause: *Action:
E passar o número errado de argumentos resulta em um erro:
SELECT TRIM(' Cat ', 2)
FROM DUAL; Resultado:
Error starting at line : 1 in command -
SELECT TRIM(' Cat ', 2)
FROM DUAL
Error at Command Line : 1 Column : 20
Error report -
SQL Error: ORA-00907: missing right parenthesis
00907. 00000 - "missing right parenthesis"
*Cause:
*Action: Veja também
RTRIM() e LTRIM() para funções mais direcionadas para aparar cada lado de uma string. Essas funções também permitem cortar vários caracteres da string.