Oi milhorini,
Você dispõe do PL/SQL (linguagem de programação da ORACLE) para trabalhar com variáveis.
Para manipular sua variável, seria melhor você trabalhar com um
bloco anônimo do PL/SQL.
Primeiro, crie a sua procedure:
Selecionar tudo
create or replace procedure pro_formatar_telefone(telefone IN OUT varchar)
is
begin
--00000000000 -> (000) 0000-0000
telefone := '(' || substr(telefone, 1, 3) || ')' || ' ' || substr(telefone, 4, 4) || '-' || substr(telefone, 8, 4);
end pro_formatar_telefone;
Segundo, crie o bloco anônimo e execute ele inteiro no SQL*PLUS:
Selecionar tudo
SET SERVEROUTPUT ON; -- habilita display em tela com DBMS_OUTPUT
DECLARE
W_TELEFONE VARCHAR2(15) := '00000000000';
BEGIN
DBMS_OUTPUT.PUT_LINE(' O TELEFONE ANTES ERA '||W_TELEFONE); -- Mostra na tela
pro_formatar_telefone(W_TELEFONE); -- Sua procedure
DBMS_OUTPUT.PUT_LINE(' O TELEFONE DEPOIS FICOU '||W_TELEFONE); -- Mostra na tela
END;
/
Você também poderia trabalhar no SQL*PLUS com variáveis, mas este tema seria um pouco extenso para ser tratado aqui. Abaixo, seguem alguns links que talvez lhe ajudem em sua programação:
http://docs.oracle.com/cd/B19306_01/ser ... 57/ch5.htm
http://www.comp.nus.edu.sg/~ooibc/courses/sql/plsql.htm
http://www.sqlmagazine.com.br/artigos/o ... _plsql.asp
Caso deseje desenvolver scripts com toda a potencialidade do SQL*Plus (não estamos falando aqui de PL/SQL), eu recomendaria a leitura deste livro:
Ele dá várias dicas e macetes sobre como tornar flexíveis scripts SQL.
Abraços,
Sergio Coutinho