
O que são Funções de String?
No Oracle, funções de string são utilizadas para manipular e formatar dados do tipo VARCHAR2
, CHAR
, entre outros. Elas permitem realizar operações como concatenar strings, encontrar substrings, substituir caracteres e muito mais.
Vantagens de Usar Funções de String
- Manipulação Avançada de Strings: Facilita o processamento e a formatação de dados textuais em consultas SQL.
- Eficiência e Precisão: Permite operações precisas e eficientes com strings.
- Flexibilidade: Suporta uma ampla variedade de operações e formatos para dados textuais.
Principais Funções de String
CONCAT
A função CONCAT
é usada para concatenar duas strings. Veja um exemplo:
SELECT CONCAT('Ramon', ' Vieira') AS nome_e_sobrenome FROM dual;
Essa consulta retorna a string ‘Ramon Vieira’ resultante da concatenação das strings ‘Ramon’ e ‘Vieira’.
NOME_E_SOBRENOME |
---|
Ramon Vieira |
SUBSTR
A função SUBSTR
extrai uma substring de uma string, começando em uma posição especificada. Veja um exemplo:
SELECT SUBSTR('Oracle Database', 8, 8) AS resultado FROM dual;
Essa consulta retorna a substring ‘Database’ extraída da string ‘Oracle Database’ a partir da posição 8 com comprimento de 8 caracteres.
RESULTADO |
---|
Database |
Observação: A função SUBSTR
pode ser utilizada em conjunto com a função LENGTH
para calcular a última posição dinamicamente, evitando deixar a posição fixa.
SELECT SUBSTR('Oracle Database', LENGTH('Oracle Database') - 7, 8) AS resultado FROM dual;
Essa consulta retorna a substring ‘Database’ extraída da string ‘Oracle Database’, calculando a posição inicial com base no comprimento da string.
INSTR
A função INSTR
retorna a posição de uma substring dentro de uma string. Veja um exemplo:
SELECT INSTR('Oracle Database', 'Database') AS posicao FROM dual;
Essa consulta retorna a posição inicial da substring ‘Database’ dentro da string ‘Oracle Database’.
POSICAO |
---|
8 |
Observação: A função INSTR
pode ser utilizada em conjunto com a função SUBSTR
para extrair uma substring a partir de uma posição calculada dinamicamente.
SELECT SUBSTR('Oracle Database', INSTR('Oracle Database', 'Database'), LENGTH('Database')) AS resultado FROM dual;
Essa consulta retorna a substring ‘Database’ extraída da string ‘Oracle Database’, utilizando a posição calculada pela função INSTR
.
REPLACE
A função REPLACE
substitui todas as ocorrências de uma substring dentro de uma string por outra substring. Veja um exemplo:
SELECT REPLACE('Oracle Database', 'Database', 'DB') AS resultado FROM dual;
Essa consulta substitui ‘Database’ por ‘DB’ na string ‘Oracle Database’, retornando ‘Oracle DB’.
RESULTADO |
---|
Oracle DB |
LENGTH
A função LENGTH
retorna o comprimento de uma string. Veja um exemplo:
SELECT LENGTH('Oracle Database') AS comprimento FROM dual;
Essa consulta retorna o comprimento da string ‘Oracle Database’, que é 15 caracteres.
COMPRIMENTO |
---|
15 |
UPPER e LOWER
As funções UPPER
e LOWER
convertem uma string para maiúsculas e minúsculas, respectivamente. Veja um exemplo:
SELECT UPPER('oracle database') AS maiuscula, LOWER('ORACLE DATABASE') AS minuscula FROM dual;
Essa consulta retorna ‘ORACLE DATABASE’ em maiúsculas e ‘oracle database’ em minúsculas.
MAIUSCULA | MINUSCULA |
---|---|
ORACLE DATABASE | oracle database |
TRIM
A função TRIM
remove espaços em branco de ambos os lados de uma string. Veja um exemplo:
SELECT TRIM(' Oracle ') AS resultado FROM dual;
Essa consulta remove os espaços em branco da string ‘ Oracle ‘, retornando ‘Oracle’.
RESULTADO |
---|
Oracle |
Observação: As funções RTRIM
e LTRIM
são variações da função TRIM
. RTRIM
remove espaços em branco do lado direito da string, enquanto LTRIM
remove espaços em branco do lado esquerdo. Essas funções são úteis quando é necessário limpar espaços em branco de apenas um lado da string.
LPAD e RPAD
As funções LPAD
e RPAD
adicionam caracteres à esquerda ou à direita de uma string até que ela atinja um comprimento especificado. Veja um exemplo:
SELECT LPAD('123', 5, '0') AS lpad_result, RPAD('123', 5, '0') AS rpad_result FROM dual;
Essa consulta retorna ‘00123’ para LPAD
e ‘12300’ para RPAD
, preenchendo a string original ‘123’ com zeros à esquerda e à direita, respectivamente.
LPAD_RESULT | RPAD_RESULT |
---|---|
00123 | 12300 |
INSTR2
A função INSTR2
retorna a posição de uma substring dentro de uma string, considerando o valor de caracteres como Unicode. Veja um exemplo:
SELECT INSTR2('Oracle Database', 'Database') AS posicao_unicode FROM dual;
Essa consulta retorna a posição inicial da substring ‘Database’ dentro da string ‘Oracle Database’, considerando a codificação Unicode.
POSICAO_UNICODE |
---|
8 |
ASCII
A função ASCII
retorna o valor ASCII do primeiro caractere de uma string. Veja um exemplo:
SELECT ASCII('A') AS valor_ascii FROM dual;
Essa consulta retorna 65, que é o valor ASCII do caractere ‘A’.
VALOR_ASCII |
---|
65 |
CHR
A função CHR
retorna o caractere correspondente ao valor ASCII especificado. Veja um exemplo:
SELECT CHR(65) AS caractere FROM dual;
Essa consulta retorna ‘A’, que é o caractere correspondente ao valor ASCII 65.
CARACTERE |
---|
A |
INITCAP
A função INITCAP
converte o primeiro caractere de cada palavra de uma string para maiúscula e todos os outros caracteres para minúscula. Veja um exemplo:
SELECT INITCAP('oracle database') AS resultado FROM dual;
Essa consulta retorna ‘Oracle Database’, com o primeiro caractere de cada palavra em maiúscula.
RESULTADO |
---|
Oracle Database |
LENGTHB
A função LENGTHB
retorna o comprimento de uma string em bytes. Veja um exemplo:
SELECT LENGTHB('Oracle') AS comprimento_bytes FROM dual;
Essa consulta retorna 6, que é o comprimento da string ‘Oracle’ em bytes.
COMPRIMENTO_BYTES |
---|
6 |
SOUNDEX
A função SOUNDEX
retorna um código que representa a pronúncia de uma string. Veja um exemplo:
SELECT SOUNDEX('Oracle') AS codigo_som FROM dual;
Essa consulta retorna ‘O624’, que é o código SOUNDEX para a string ‘Oracle’.
CODIGO_SOM |
---|
O624 |
TRANSLATE
A função TRANSLATE
substitui cada caractere de uma string que aparece em uma lista de caracteres por outro caractere de acordo com uma lista de substituição. Veja um exemplo:
SELECT TRANSLATE('1234', '1234', 'ABCD') AS resultado FROM dual;
Essa consulta substitui ‘1’ por ‘A’, ‘2’ por ‘B’, ‘3’ por ‘C’ e ‘4’ por ‘D’, retornando ‘ABCD’.
RESULTADO |
---|
ABCD |
Observação: A diferença entre TRANSLATE
e REPLACE
reside no fato de que TRANSLATE
trabalha com a substituição de caracteres individuais em uma string, enquanto REPLACE
trabalha com substrings inteiras.
- Use
TRANSLATE
quando precisar substituir caracteres individuais de forma simples e direta. - Use
REPLACE
quando precisar substituir substrings específicas por outras substrings.
Por exemplo, TRANSLATE
é eficiente para substituir múltiplos caracteres em uma string simultaneamente, como substituir todos os dígitos por letras correspondentes. Já REPLACE
é mais útil quando você precisa substituir palavras ou padrões mais longos e específicos dentro de uma string.
Considerações Finais
As funções de string no Oracle são ferramentas poderosas para manipulação e formatação de dados textuais. Elas são essenciais para uma ampla gama de aplicações, desde a simples formatação de texto até manipulações complexas de strings.
Se você tiver alguma dúvida ou sugestão, deixe um comentário abaixo!