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.

 

MAIUSCULAMINUSCULA
ORACLE DATABASEoracle 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_RESULTRPAD_RESULT
0012312300

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!

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Rolar para cima