Function ASCII - retorna o código ASCII do caracter.
SQL> select ascii('A') from dual;
ASCII('A')
----------
65
Function CHR - Retorna um caracter quando recebe seu valor ASCII.
SQL> select chr(65) from dual;
C
-
A
Function CONCAT - Concatena duas strings.
SQL> select concat('ORACLE ', 'PL/SQL') texto from dual;
TEXTO
-------------
ORACLE PL/SQL
Function INITCAP - Primeiro caracter de cada palavra de uma string em maiúsculo.
SQL> select initcap('everton de vargas agilar') my_name from dual;
MY_NAME
------------------------
Everton De Vargas Agilar
Function INSTR - Retorna a localização de uma string dentro de outra string.
EXEMPLO 1
SQL> select instr('ABCDEFGHIJLMNOPQRSTUVXZabcdefghijlmnopqrstuvxzABCDEFGHIJKLMNOPQRSTUVXZ', 'DEF') pos from dual;
POS
----------
4
EXEMPLO 2
SQL> select instr('ABCDEFGHIJLMNOPQRSTUVXZabcdefghijlmnopqrstuvxzABCDEFGHIJKLMNOPQRSTUVXZ', 'DEF', 5) pos from dual;
POS
----------
50
EXEMPLO 3
SQL>
1 create or replace procedure print_values(
2 pValues in varchar2,
3 pDesconsiderar in varchar2)
4 is
5 v char;
6 begin
7 for i in 1..length(pValues) loop
8 v:= substr(pValues, i, 1);
9 if instr(pDesconsiderar, v) = 0 then
10 dbms_output.put_line(v);
11 end if;
12 end loop;
13* end;
SQL> /
Procedimento criado.
SQL> execute print_values('12345', '4');
1
2
3
5
Procedimento PL/SQL concluÝdo com sucesso.
Function LPAD - Preenche uma string no lado esquerdo de caracteres com qualquer string especificada.
SQL> select lpad('789123', 13) codigo from dual;
CODIGO
-------------
789123
SQL> select lpad('789123', 13, '0') codigo from dual;
CODIGO
-------------
0000000789123
SQL> select lpad('789123', 13, '01') codigo from dual;
CODIGO
-------------
0101010789123
SQL> select lpad('789123', 13, '*') codigo from dual;
CODIGO
-------------
*******789123
Function RPAD - Preenche uma string no lado direito de caracteres com qualquer string especificada.
SQL> select rpad('789123', 13) codigo from dual;
CODIGO
-------------
789123
SQL> select rpad('789123', 13, '0') codigo from dual;
CODIGO
-------------
7891230000000
SQL> select rpad('789123', 13, '01') codigo from dual;
CODIGO
-------------
7891230101010
SQL> select rpad('789123', 13, '-') codigo from dual;
CODIGO
-------------
789123-------
SQL> select rpad('789123', 13, '*') codigo from dual;
CODIGO
-------------
789123*******
Function LENGTH - Retorna o comprimento de uma string.
SQL> select length('ORACLE 10g') text from dual;
TEXT
----------
10
Function REPLACE - Substitui toda ocorrência de uma string por outra string.
SQL> select replace('ORACLE 10g', '10g', '11g') text from dual;
TEXT
----------
ORACLE 11g
Function TRANSLATE - Igual a REPLACE mas opera a nível de caracter. Veja um exemplo com REPLACE e TRANSLATE.
-- Converte ad para x. Somente uma ocorrência a ser encontrada.
SQL> select replace('abcdabada', 'ad', 'x') from dual;
REPLACE(
--------
abcdabxa
-- Converte o caracter "a" ou o caracter "d" para x. Várias ocorrências são encontradas.
SQL> select translate('abcdabada', 'ad', 'x') from dual;
TRANSLA
-------
xbcxbxx
Function SOUNDEX - Retorna a representação fonética de uma string. Útil nas palavras que têm ortografia diferente mas com som parecido.
SQL>
1 select * from (
2 select 'Agilar' as nome from dual
3 union
4 select 'Aguilar' as nome from dual
5 union
6 select 'Stefanello' as nome from dual
7 union
8 select 'Agilare' as nome from dual
9 )
10* where soundex(nome) = soundex('Agilar')
SQL> /
NOME
----------
Agilar
Agilare
Aguilar
Function SUBSTR - Retorna uma parte de uma string de dentro de uma string.
SQL> select substr('ORACLE 11g', 8, 3) from dual;
SUB
---
11g
Function TRIM, LTRIM, RTRIM - Remove espaços de uma string em ambos lados, a esquerda ou a direita.
SQL> select trim(' 8976 ') texto from dual;
TEXT
----
8976
SQL> select ltrim(' 8976 ') text from dual;
TEXT
-----------
8976
SQL> select rtrim(' 8976 ') text from dual;
TEXT
----------
8976
Function UPPER, LOWER - Converte a string para maiúsculo ou minúsculo.
SQL> select upper('oracle') texto from dual;
TEXTO
------
ORACLE
SQL> select lower('Oracle') texto from dual;
TEXTO
------
oracle
Function ABS - Retorna o valor absoluto de um número.
SQL> select abs(-11) from dual;
ABS(-11)
----------
11
SQL> select abs(11) from dual;
ABS(11)
----------
11
Function FLOOR - Retorna o maior integer menor ou igual a um valor decimal.
Function CEIL - Retorna o menor integer maior ou igual a um valor decimal.
SQL> select floor(12345.56) from dual;
FLOOR(12345.56)
---------------
12345
SQL> select ceil(12345.56) from dual;
CEIL(12345.56)
--------------
12346
Function ROUND - Retorna um número arredondado para n casas.
SQL> select round(10.126, 2) from dual;
ROUND(10.126,2)
---------------
10,13
SQL> select round(10.126, 2) value from dual;
VALUE
----------
10,13
SQL> select round(10.126, 3) value from dual;
VALUE
----------
10,126
Function Trunc - Retorna um número truncado em n casas.
SQL> select trunc(10.126, 3) from dual;
TRUNC(10.126,3)
---------------
10,126
SQL> select trunc(10.126, 2) from dual;
TRUNC(10.126,2)
---------------
10,12
SQL> select trunc(10.126, 1) from dual;
TRUNC(10.126,1)
---------------
10,1
SQL> select trunc(123456, -1) from dual;
TRUNC(123456,-1)
----------------
123450
SQL> select trunc(123456, -2) from dual;
TRUNC(123456,-2)
----------------
123400
SQL> select trunc(123456, -3) from dual;
TRUNC(123456,-3)
----------------
123000
Function SIGN - Determina se um número é positivo, negativo ou zero.
SQL> select sign(10) from dual;
SIGN(10)
----------
1
SQL> select sign(-10) from dual;
SIGN(-10)
----------
-1
SQL> select sign(0) from dual;
SIGN(0)
----------
0
Function ADD_MONTHS - Adiciona mês a uma data.
SQL> select add_months(to_date('31/01/2010', 'dd/mm/yyyy'), 1) from dual;
ADD_MONT
--------
28/02/10
SQL> select add_months(to_date('31/01/2010', 'dd/mm/yyyy'), -1) from dual;
ADD_MONT
--------
31/12/09
Function LAST_DAY - Retorna a data do último dia do mês.
SQL> select last_day(to_date('19/01/2010', 'dd/mm/yyyy')) from dual;
LAST_DAY
--------
31/01/10
SQL> select last_day(to_date('01/02/2010', 'dd/mm/yyyy')) from dual;
LAST_DAY
--------
28/02/10
Function MONTHS_BETWEEN - Calcula os meses entre duas datas.
SQL> select months_between(to_date('01/03/2010', 'dd/mm/yyyy'), to_date('01/04/2010', 'dd/mm/yyyy')) meses from dual;
MESES
----------
-1
SQL> select months_between(to_date('01/04/2010', 'dd/mm/yyyy'), to_date('01/03/2010', 'dd/mm/yyyy')) meses from dual;
MESES
----------
1
Function NEXT_DAY - Retorna a data do primeiro dia da semana especificado em uma string após a data inicial.
SQL> select next_day(sysdate, 'SEXTA') from dual;
NEXT_DAY
--------
22/01/10
SQL> select next_day(sysdate, 'DOMINGO') from dual;
NEXT_DAY
--------
24/01/10
Function TO_CHAR - Converte um número ou data para string.
EXEMPLOS COM DATA
SQL> select to_char(sysdate, 'Month') dt from dual;
DT
------------------------------------
Janeiro
SQL> select to_char(sysdate, 'MON') dt from dual;
DT
------------
JAN
SQL> select to_char(sysdate, 'MONTH') dt from dual;
DT
------------------------------------
JANEIRO
SQL> select to_char(sysdate, 'MM') dt from dual;
DT
--
01
SQL> select to_char(sysdate, 'YYYY') dt from dual;
DT
----
2010
SQL> select to_char(sysdate, 'YYY') dt from dual;
DT
---
010
SQL> select to_char(sysdate, 'YY') dt from dual;
DT
--
10
SQL> select to_char(sysdate, 'RR') dt from dual;
DT
--
10
SQL> select to_char(sysdate, '"Data: "DD/MM/YYYY') dt from dual;
DT
----------------
Data: 19/1/2010
SQL> select to_char(sysdate, 'FMDay, Month, YYYY') dt from dual;
DT
-------------------------------------------------------------------
Terþa-Feira, Janeiro, 2010
SQL> select to_char(sysdate, 'Day, Month, YYYY') dt from dual;
DT
-------------------------------------------------------------------
Terça-Feira , Janeiro , 2010
EXEMPLOS COM NÚMEROS
SQL> select to_char(12345.23, '99999999') from dual;
TO_CHAR(1
---------
12345
SQL> select to_char(12345.23, '99999D99') from dual;
TO_CHAR(1
---------
12345,23
SQL> select to_char(12345.23, '99999D999') from dual;
TO_CHAR(12
----------
12345,230
SQL> select to_char(12345.23, '99999D000') from dual;
TO_CHAR(12
----------
12345,230
SQL> select to_char(12345, '99999D000') from dual;
TO_CHAR(12
----------
12345,000
SQL> select to_char(12345, '$99999D000') from dual;
TO_CHAR(123
-----------
$12345,000
SQL> select to_char(12345, 'L99999D000') from dual;
TO_CHAR(12345,'L9999
--------------------
R$12345,000
-- OBS: Se a máscara for menor que o número, o caracter # será impresso!
SQL> select to_char(12345, '999') from dual;
TO_C
----
####
Pesquisar este blog
terça-feira, 19 de janeiro de 2010
Dicas e Truques PL/SQL - Parte 3
Assinar:
Postar comentários (Atom)
Nenhum comentário:
Postar um comentário