Funções de manipulação de caracter |
Estas funções aceitam como argumento(s) caracteres e devolvem caracteres ou valores numéricos:
LOWER(string)
Converte 'string' para letras minúsculas. Ex:
select LOWER(dname), LOWER('Curso SQL') from dept; |
LOWER(DNAME) LOWER('CURSOSQL') -------------- ----------------- accounting curso sql research curso sql sales curso sql operations curso sql 4 rows selected |
UPPER(string)
Converte 'string' para letras maiúsculas.
select first_name, UPPER(first_name) from employees where rownum <= 4; |
FIRST_NAME UPPER(FIRST_NAME) -------------------- -------------------- Ellen ELLEN Sundar SUNDAR Mozhe MOZHE David DAVID 4 rows selected |
INITCAP(string)
Impõe uma letra maiúscula na primeira letra de cada palavra e minúsculas nas restantes.
select dname, INITCAP(dname) from dept; |
DNAME INITCAP(DNAME) -------------- -------------- ACCOUNTING Accounting RESEARCH Research SALES Sales OPERATIONS Operations 4 rows selected |
CONCAT(string1,string2);
Devolve a concatenação de string1 com string2. É uma alternativa ao operador ||:
select concat(ename, job), concat(empno,ename) from emp; |
CONCAT(ENAME,JOB) CONCAT(EMPNO,ENAME) ------------------- -------------------------------------------------- SMITHCLERK 7369SMITH ALLENSALESMAN 7499ALLEN WARDSALESMAN 7521WARD JONESMANAGER 7566JONES MARTINSALESMAN 7654MARTIN BLAKEMANAGER 7698BLAKE CLARKMANAGER 7782CLARK SCOTTANALYST 7788SCOTT KINGPRESIDENT 7839KING TURNERSALESMAN 7844TURNER ADAMSCLERK 7876ADAMS JAMESCLERK 7900JAMES FORDANALYST 7902FORD MILLERCLERK 7934MILLER 14 rows selected |
LPAD (string1,n,string2);
São reservados n caracteres para output. A string1 é encostada à direita, sendo o espaço à esquerda preenchido com string2. Em caso de omissão de string2 o espaço é preenchido com espaços em branco.
select LPAD(dname,20), LPAD(dname,20,'*'), LPAD(dname,20,'*-') from dept; |
LPAD(DNAME,20) LPAD(DNAME,20,'*') LPAD(DNAME,20,'*-') -------------------- -------------------- -------------------- ACCOUNTING **********ACCOUNTING *-*-*-*-*-ACCOUNTING RESEARCH ************RESEARCH *-*-*-*-*-*-RESEARCH SALES ***************SALES *-*-*-*-*-*-*-*SALES OPERATIONS **********OPERATIONS *-*-*-*-*-OPERATIONS 4 rows selected |
RPAD (string1,n,string2);
São reservados n caracteres para output. A string1 é encostada à esquerda, sendo o espaço à direita preenchido com string2. Em caso de omissão de string2 o espaço é preenchido com espaços em branco.
select RPAD(dname,20), RPAD(dname,20,'*'), RPAD(dname,20,'*-') from dept; |
RPAD(DNAME,20) RPAD(DNAME,20,'*') RPAD(DNAME,20,'*-') -------------------- -------------------- -------------------- ACCOUNTING ACCOUNTING********** ACCOUNTING*-*-*-*-*- RESEARCH RESEARCH************ RESEARCH*-*-*-*-*-*- SALES SALES*************** SALES*-*-*-*-*-*-*-* OPERATIONS OPERATIONS********** OPERATIONS*-*-*-*-*- 4 rows selected |
SUBSTR(string1,pos,n);
Esta função pressupõe que os caracteres numa cadeia são numerados da esquerda para a direita, começando em 1. Devolve a substring de 'string1' que começa na posição 'pos' e tem comprimento n. Se o parametro 'n' for omitido, devolve todos os caracteres desde a posição 'pos' até ao fim.
select SUBSTR('ORACLE',2,4), SUBSTR(dname,2), substr(dname,3,5) from dept; |
SUBSTR('ORACLE',2,4) SUBSTR(DNAME,2) SUBSTR(DNAME,3,5) -------------------- --------------- ----------------- RACL CCOUNTING COUNT RACL ESEARCH SEARC RACL ALES LES RACL PERATIONS ERATI 4 rows selected |
INSTR(string1,string2);
Devolve a posição da primeira ocorrência de string2 dentro de string1.
INSTR(string1,string2,pos,n);
Devolve a posição da n-ésima ocorrência de string2 dentro de string1 a partir da posição 'pos'.
select dname, INSTR(dname,'A'), INSTR(dname,'ES'), INSTR(DNAME,'C',1,2) from dept |
DNAME INSTR(DNAME,'A') INSTR(DNAME,'ES') INSTR(DNAME,'C',1,2) -------------- ---------------------- ---------------------- ---------------------- ACCOUNTING 1 0 3 RESEARCH 5 2 0 SALES 2 4 0 OPERATIONS 5 0 0 4 rows selected |
LTRIM(string1,string2);
Retira todas as ocorrências de string2 dentro de string1 que estejam encostadas à esquerda. Se string2 for omitida, retira todos os espaços em branco do lado esquerdo. Note-se que são retiradas também as strings formadas por combinações de caracteres que pertencem ao conjunto das letras de string2. Repare-se no exemplo abaixo em 'AS'.
select dname, LTRIM(dname,'A'), LTRIM(dname,'AS'), LTRIM(dname,'ASOP') from dept; |
DNAME LTRIM(DNAME,'A') LTRIM(DNAME,'AS') LTRIM(DNAME,'ASOP') -------------- ---------------- ----------------- ------------------- ACCOUNTING CCOUNTING CCOUNTING CCOUNTING RESEARCH RESEARCH RESEARCH RESEARCH SALES SALES LES LES OPERATIONS OPERATIONS OPERATIONS ERATIONS 4 rows selected |
RTRIM(string1,string2);
Retira todas as ocorrências de string2 dentro de string1 que estejam encostadas à direita. Se string2 for omitida, retira todos os espaços em branco do lado direito. Note-se que são retiradas também as strings formadas por combinações de caracteres que pertencem a string2.
select dname, RTRIM(dname,'G'), RTRIM(dname,'GHS'), RTRIM(dname,'N'), RTRIM(dname,'SEL') from dept; |
DNAME RTRIM(DNAME,'G') RTRIM(DNAME,'GHS') RTRIM(DNAME,'N') RTRIM(DNAME,'SEL') -------------- ---------------- ------------------ ---------------- ------------------ ACCOUNTING ACCOUNTIN ACCOUNTIN ACCOUNTING ACCOUNTING RESEARCH RESEARCH RESEARC RESEARCH RESEARCH SALES SALES SALE SALES SA OPERATIONS OPERATIONS OPERATION OPERATIONS OPERATION 4 rows selected |
Este comando é particularmente útil para retirar espaços indesejados à direita de uma string. Ao introduzir dados para uma coluna (por exemplo ENAME da tabela EMP) podem ser introduzidos espaços em branco à direita, que além de ocupar espaço, podem dificultar as pesquisas. Com LTRIM é possível retirar esses espaços, por exemplo: UPDATE emp SET ename=RTRIM(ename);
LENGTH(string1);
Devolve o comprimento de string1.
select LENGTH('curso de sql'), LENGTH(deptno), LENGTH(dname) from dept; |
LENGTH('CURSODESQL') LENGTH(DEPTNO) LENGTH(DNAME) ---------------------- ---------------------- ---------------------- 12 2 10 12 2 8 12 2 5 12 2 10 4 rows selected |
TRANSLATE(string1,c1,c2);
Substitúi um caracter por outro. Converte todas as ocorrências do caracter c1 de string1 para c2. Podem ser colocados vários caracteres. Se c2 for omitido, c1 é convertido para espaço em branco. No exemplo abaixo o caracter A é substituído por I e R por T.
select ename, TRANSLATE(ename,'C','P'), job, TRANSLATE(job,'AR','IT') from EMP; |
ENAME TRANSLATE(ENAME,'C','P') JOB TRANSLATE(JOB,'AR','IT') ---------- ------------------------ --------- ------------------------ SMITH SMITH CLERK CLETK ALLEN ALLEN SALESMAN SILESMIN WARD WARD SALESMAN SILESMIN JONES JONES MANAGER MINIGET MARTIN MARTIN SALESMAN SILESMIN BLAKE BLAKE MANAGER MINIGET CLARK PLARK MANAGER MINIGET SCOTT SPOTT ANALYST INILYST KING KING PRESIDENT PTESIDENT TURNER TURNER SALESMAN SILESMIN ADAMS ADAMS CLERK CLETK JAMES JAMES CLERK CLETK FORD FORD ANALYST INILYST MILLER MILLER CLERK CLETK 14 rows selected |
REPLACE(string1,string2,string3);
Trabalhando sobre a string1, converte todas as ocorrências de string2 para string3. Se string3 for omitida, string2 é convertida em espaço em branco.
select job, REPLACE(job,'SALESMAN','VENDEDOR') from emp; select ename, REPLACE(ename,'CO','PX') from emp; |
JOB REPLACE(JOB,'SALESMAN','VENDEDOR') --------- ------------------------------------------------------------------------ CLERK CLERK SALESMAN VENDEDOR SALESMAN VENDEDOR MANAGER MANAGER SALESMAN VENDEDOR MANAGER MANAGER MANAGER MANAGER ANALYST ANALYST PRESIDENT PRESIDENT SALESMAN VENDEDOR CLERK CLERK CLERK CLERK ANALYST ANALYST CLERK CLERK 14 rows selected ENAME REPLACE(ENAME,'CO','PX') ---------- ------------------------ SMITH SMITH ALLEN ALLEN WARD WARD JONES JONES MARTIN MARTIN BLAKE BLAKE CLARK CLARK SCOTT SPXTT KING KING TURNER TURNER ADAMS ADAMS JAMES JAMES FORD FORD MILLER MILLER 14 rows selected |
Realizado por Turtle Learning ®. Última alteração em 2011-02-26