Este artigo explora o uso da função replace() no banco de dados Oracle para substituir a ocorrência de uma determinada substring por outra substring.
Sintaxe da Função
O código a seguir mostra a sintaxe da função replace():
REPLACE(source_string, substring, replace_string);
A função aceita três parâmetros:
- source_string – representa a string de origem a ser pesquisada.
- Substring – define a substring a ser substituída
- string de substituição – define a string ou conjunto de caracteres que são substituídos no lugar da substring.
A função retorna um tipo de string com todas as ocorrências da substring substituídas pela replace_string.
Exemplos de funções Oracle Replace()
Os exemplos a seguir demonstram como a função se comporta sob vários parâmetros e tipos de entrada:
Exemplo 1 – Substituir Ocorrência de Substring
O exemplo abaixo ilustra o uso principal da função replace() com todos os parâmetros de entrada fornecidos.
select replace('Desenvolvimento de banco de dados Oracle', 'ab', 'xy') AS substituídode dual;
A consulta acima utiliza a função replace() para substituir os caracteres (ab) por (xy). Saída resultante:
SUBSTITUÍDA |
--------------------------+
Oracle datxyase development|
Exemplo 2 – Usando a Função Substituir para Remover uma Substring
Conforme mencionado, podemos usar a função replace() para remover uma substring da string de origem. Isso ocorre quando não fornecemos o valor da substring conforme mostrado:
SELECT replace('https://linuxhint.com', 'https://') AS d FROM dual;Resultado:
D |
--------------+
linuxhint.com|
Exemplo 3 – Substituir valores em uma tabela
Frequentemente usamos a função replace() para substituir valores em uma tabela de banco de dados. Veja a tabela de exemplo mostrada:
criar tabela sample_data(
número de identidade,
first_name varchar2(50),
endereço_ip varchar2(20),
btc_address varchar2(50),
cartão de crédito varchar2(50),
identificador varchar2(40),
chave primária sample_pk de restrição (id)
);
inserir em sample_data (id, first_name, ip_address, btc_address, credit_card, identifier)
valores (11, 'Wallas', '169.158.70.77', '1CNz5d1d5SC8SaR6dFSVihwztqYx5Fg77q', '4017955174552',
'26811d77-0a3a-4397-bc33-f7835f7c7ab9');
insira em sample_data(id, first_name, ip_address, btc_address, credit_card, identifier)
valores (12, 'Ian', '148.190.10.178', '1ADxBV7n9JeDDcb8pL24J9wV54mcSRHdu7', '4017956704480827',
'a69fe590-bc1b-4001-8ff8-154bcdb5802d');
inserir em sample_data (id, first_name, ip_address, btc_address, credit_card, identifier)
valores (13, 'Pasquale', '150.86.18.140', '126hVKom2Foy9LEA6M4pUAT1h97c2rSD8B', '4017953296787867',
'34ac9385-9e1e-4d13-9537-c4eedb9f2c35');
Antes da declaração de atualização:
SELECT FIRST_NAME, IP_ADDRESS, CREDIT_CARD FROM SAMPLE_DATA sd;
Podemos usar a função replace() para substituir todas as ocorrências de 4 na coluna credit_card por 5.
UPDATE SAMPLE_DATA SET CREDIT_CARD = REPLACE(CREDIT_CARD, '4', '5');Após a declaração de atualização:
Na tabela resultante, podemos verificar se os valores nas colunas credit_card foram substituídos de 4 para 5.
Conclusão
Por meio deste tutorial, você entendeu o funcionamento da função replace() em bancos de dados Oracle.