Академический Документы
Профессиональный Документы
Культура Документы
Pgina 1 de 8
Procurar
Procurar
Tipo retornado
text integer integer
Descrio
Concatenao de cadeias de caracteres Nmero de bits na cadeia de caracteres Nmero de caracteres na cadeia de caracteres
Exemplo
'Post' || 'greSQL' bit_length('Jos') char_length('Jos')
Resultado
PostgreSQL 32 4
text
Muda a codificao utilizando o nome de converso especificado. As converses podem ser definidas pelo comando CREATE CONVERSION. Alm disso, existem alguns nomes de converso pr-definidos. Veja na Tabela 9-8 os nomes de converso disponveis. Converte as letras da cadeia de caracteres em minsculas Nmero de bytes na cadeia de caracteres Substituir parte da cadeia de caracteres (sobreposio)
so 4 Thomas
overlay text (cadeia_de_caracteres placing cadeia_de_caracteres from integer [for integer]) position(substring in cadeia_de_caracteres) integer
substring text (cadeia_de_caracteres [from integer] [for integer]) substring (cadeia_de_caracteres from padro) substring (cadeia_de_caracteres from padro for escape) trim([leading | trailing | both] [caracteres] from cadeia_de_caracteres) text
substring('Thomas' from hom 2 for 3) substring('Thomas' from mas '...$') substring('Thomas' from oma '%#"o_a#"_' for '#') trim(both 'x' from 'xTomxx') Tom
Extrai a parte da cadeia de caracteres correspondente expresso regular POSIX [a] Extrai a parte da cadeia de caracteres correspondente expresso regular SQL Remove a cadeia de caracteres mais longa contendo apenas os caracteres (espao por padro) da extremidade inicial/final/ambas da cadeia_de_caracteres. Converte as letras da cadeia de caracteres em maisculas
text
text
upper(cadeia_de_caracteres) text
upper('so')
SO
Notas: a. Nos sistemas *nix execute man 7 regex para ver uma descrio das expresses regulares POSIX 1003.2. (N. do T.)
Esto disponveis funes adicionais para manipulao de cadeias de caracteres, conforme mostrado na Tabela 9-7. Algumas delas so utilizadas internamente para implementar funes de cadeia de caracteres do padro SQL, conforme mostrado na Tabela 9-6. Tabela 9-7. Outras funes para cadeia de caracteres Funo
ascii(text)
Tipo retornado
integer
Descrio
cdigo ASCII do primeiro caractere do argumento
Exemplo
ascii('x') 120
Resultado
http://pgdocptbr.sourceforge.net/pg80/functions-string.html
24/01/2012
Pgina 2 de 8
Funo
btrim (cadeia_de_caracteres text [, caracteres text])
Tipo retornado
text
Descrio
Remove a maior cadeia de caracteres contendo apenas os caracteres presentes em caracteres (espao por padro), do incio e do fim da cadeia_de_caracteres Caractere com o cdigo ASCII fornecido Converte a cadeia de caracteres na codificao_de_destino. A codificao de origem especificada por codificao_de_origem. Se a codificao_de_origem for omitida, ser assumida a codificao do banco de dados. Decodifica os dados binrios da cadeia_de_caracteres previamente codificada com encode(). O tipo do parmetro o mesmo que em encode (). Codifica dados binrios na representao somente ASCII. Os tipos suportados so: base64, hex e escape.
Exemplo
btrim('xyxtrimyyx', 'xy') trim
Resultado
chr(integer) convert (cadeia_de_caracteres text, [codificao_de_origem name,] codificao_de_destino name) decode (cadeia_de_caracteres text, tipo text)
text text
bytea
decode('MTIzAAE=', 'base64')
123\000\001
text
MTIzAAE=
initcap(text)
text
Converte a primeira letra de cada initcap('hi THOMAS') palavra em maiscula e as demais em minsculas. As palavras so seqncias de caracteres alfanumricos separadas por caracteres no alfanumricos. Nmero de caracteres presentes na cadeia_de_caracteres. length('Jos')
Hi Thomas
integer
Preenche a cadeia_de_caracteres at o lpad('hi', 5, 'xy') comprimento adicionando os caracteres de preenchimento (espao por padro) esquerda. Se a cadeia_de_caracteres for mais longa que o comprimento ento truncada ( direita). Remove a cadeia de caracteres mais longa contendo apenas caracteres presentes em caracteres (espao por padro) do incio da cadeia_de_caracteres. Calcula o MD5 da cadeia_de_caracteres, retornando o resultado em hexadecimal. Nome da codificao atual do cliente Retorna a cadeia de caracteres fornecida apropriadamente entre aspas, para ser utilizada como identificador na cadeia de caracteres de um comando SQL. As aspas sero adicionadas somente quando forem necessrias (ou seja, se a cadeia de caracteres contiver caracteres noidentificadores, ou se contiver letras maisculas e minsculas). As aspas internas so devidamente duplicadas.
[a]
xyxhi
text
ltrim('zzzytrim', 'xyz')
trim
text
md5('abc')
name text
text
Retorna a cadeia de caracteres quote_literal( 'O\'Reilly') 'O''Reilly' fornecida apropriadamente entre apstrofos, para ser utilizada como literal cadeia de caracteres na cadeia de caracteres de um comando SQL. Os apstrofos e contrabarras embutidos so devidamente duplicados. Repete a cadeia_de_caracteres pelo nmero de vezes especificado Substitui todas as ocorrncias na cadeia_de_caracteres, da cadeia de caracteres de origem pela cadeia de caracteres de destino. repeat('Pg', 4) PgPgPgPg
repeat (cadeia_de_caracteres text, nmero integer) replace (cadeia_de_caracteres text, origem text, destino text)
text
text
Preenche a cadeia_de_caracteres at o rpad('hi', 5, 'xy') comprimento anexando os caracteres de preenchimento (espao por padro) direita. Se a cadeia_de_caracteres for mais longa que o comprimento, ento truncada. Remove do final da cadeia_de_caracteres, a cadeia de rtrim('trimxxxx', 'x')
hixyx
text
trim
http://pgdocptbr.sourceforge.net/pg80/functions-string.html
24/01/2012
Pgina 3 de 8
Funo
rtrim (cadeia_de_caracteres text [, caracteres text]) split_part (cadeia_de_caracteres text, delimitador text, campo integer) strpos (cadeia_de_caracteres, caracteres)
Tipo retornado
Descrio
caracteres mais longa contendo apenas os caracteres presentes em caracteres (espao por padro).
Exemplo
Resultado
text
Divide a cadeia_de_caracteres split_part def utilizando o delimitador, retornando ( 'abc~@~def~@~ghi', o campo especificado (contado a '~@~', 2) partir de 1). Posio dos caracteres especificados; o mesmo que position(caracteres in cadeia_de_caracteres), mas deve ser observada a ordem invertida dos argumentos strpos('high', 'ig') 2
text
text
Extrai a subcadeia de caracteres substr('alphabet', 3, 2) caracteres; o mesmo que substring (cadeia_de_caracteres from origem for contador) Converte texto em outras codificaes em ASCII [b] Converte o nmero em sua representao hexadecimal equivalente
ph
text text
Todo caractere da translate('12345', '14', cadeia_de_caracteres que 'ax') corresponde a um caractere do conjunto origem, substitudo pelo caractere correspondente do conjunto destino.
a23x5
Notas: a. SQL server A funo quotename retorna uma cadeia Unicode com delimitadores adicionados, para tornar a cadeia de entrada um identificador delimitado vlido para o Microsoft SQL Server 2005. Os delimitadores podem ser apstrofos ( ' ), colchete esquerdo e direito ( [ ] ), ou aspas ( " ). O padro colchetes. SQL Server 2005 Books Online QUOTENAME (Transact-SQL) (N. do T.) b. A funo to_ascii permite apenas a converso das codificaes LATIN1, LATIN2, LATIN9 e WIN1250.
Exemplo 9-1. Converso de letras minsculas e maisculas acentuadas Abaixo esto mostradas duas funes para converso de letras. A funo maiusculas converte letras minsculas, com ou sem acentos, em maisculas, enquanto a funo minusculas faz o contrrio, ou seja, converte letras maisculas, com ou sem acentos em minsculas [1] .
=> \!chcp 1252 Active code page: 1252 => CREATE FUNCTION maiusculas(text) RETURNS text AS ' '> SELECT translate( upper($1), '> text '''', '> text '''') '> ' LANGUAGE SQL STRICT; => SELECT maiusculas(' ao seqncia'); maiusculas ----------------- AO SEQNCIA => CREATE FUNCTION minusculas(text) RETURNS text AS ' '> SELECT translate( lower($1), '> text '''', '> text '''') '> ' LANGUAGE SQL STRICT; => SELECT minusculas(' AO SEQNCIA'); minusculas ----------------- ao seqncia
Codificao de origem
SQL_ASCII SQL_ASCII BIG5 BIG5 BIG5 EUC_CN EUC_CN EUC_JP EUC_JP EUC_JP EUC_KR EUC_KR
Codificao de destino
MULE_INTERNAL UNICODE EUC_TW MULE_INTERNAL UNICODE MULE_INTERNAL UNICODE MULE_INTERNAL SJIS UNICODE MULE_INTERNAL UNICODE
http://pgdocptbr.sourceforge.net/pg80/functions-string.html
24/01/2012
Pgina 4 de 8
Codificao de origem
EUC_TW EUC_TW EUC_TW GB18030 GBK LATIN6 LATIN7 LATIN8 LATIN9 LATIN10 LATIN1 LATIN1 LATIN2 LATIN2 LATIN2 LATIN3 LATIN3 LATIN4 LATIN4 ISO_8859_5 ISO_8859_5 ISO_8859_5 ISO_8859_5 ISO_8859_5 ISO_8859_6 ISO_8859_7 ISO_8859_8 LATIN5 JOHAB KOI8 KOI8 KOI8 KOI8 KOI8 MULE_INTERNAL MULE_INTERNAL MULE_INTERNAL MULE_INTERNAL MULE_INTERNAL MULE_INTERNAL MULE_INTERNAL MULE_INTERNAL MULE_INTERNAL MULE_INTERNAL MULE_INTERNAL MULE_INTERNAL MULE_INTERNAL MULE_INTERNAL MULE_INTERNAL MULE_INTERNAL SJIS SJIS SJIS TCVN UHC UNICODE UNICODE UNICODE UNICODE UNICODE UNICODE UNICODE UNICODE UNICODE UNICODE
Codificao de destino
BIG5 MULE_INTERNAL UNICODE UNICODE UNICODE UNICODE UNICODE UNICODE UNICODE UNICODE MULE_INTERNAL UNICODE MULE_INTERNAL UNICODE WIN1250 MULE_INTERNAL UNICODE MULE_INTERNAL UNICODE KOI8 MULE_INTERNAL UNICODE WIN ALT UNICODE UNICODE UNICODE UNICODE UNICODE ISO_8859_5 MULE_INTERNAL UNICODE WIN ALT SQL_ASCII BIG5 EUC_CN EUC_JP EUC_KR EUC_TW LATIN1 LATIN2 LATIN3 LATIN4 ISO_8859_5 KOI8 SJIS WIN1250 WIN ALT EUC_JP MULE_INTERNAL UNICODE UNICODE UNICODE SQL_ASCII BIG5 EUC_CN EUC_JP EUC_KR EUC_TW GB18030 GBK LATIN1 LATIN6
http://pgdocptbr.sourceforge.net/pg80/functions-string.html
24/01/2012
Pgina 5 de 8
Codificao de origem
UNICODE UNICODE UNICODE UNICODE UNICODE UNICODE UNICODE UNICODE UNICODE UNICODE UNICODE UNICODE UNICODE UNICODE UNICODE UNICODE UNICODE UNICODE UNICODE UNICODE UNICODE UNICODE WIN1250 WIN1250 WIN1250 WIN WIN WIN WIN WIN WIN1256 ALT ALT ALT ALT ALT WIN874
Codificao de destino
LATIN7 LATIN8 LATIN9 LATIN10 LATIN2 LATIN3 LATIN4 ISO_8859_5 ISO_8859_6 ISO_8859_7 ISO_8859_8 LATIN5 JOHAB KOI8 SJIS TCVN UHC WIN1250 WIN WIN1256 ALT WIN874 LATIN2 MULE_INTERNAL UNICODE ISO_8859_5 KOI8 MULE_INTERNAL UNICODE ALT UNICODE ISO_8859_5 KOI8 MULE_INTERNAL UNICODE WIN UNICODE
Notas: a. Os nomes das converses obedecem a um esquema de nomes padronizado: O nome oficial da codificao de origem, com todos os caracteres no alfanumricos substitudos por sublinhado, seguido por _to_, seguido pelo nome da codificao de destino processado da mesma forma que o nome da codificao de origem. Portanto, os nomes podem desviar dos nomes habituais das codificaes.
Oracle 10g:
http://pgdocptbr.sourceforge.net/pg80/functions-string.html
24/01/2012
Pgina 6 de 8
DB2 9.1:
db2 => VALUES(length('1234567890 ')); 1 ----------11
Exemplo 9-3. Concatenao de cadeias de caracteres Abaixo so mostradas consultas que retornam como resultado a concatenao de cadeias de caracteres. Deve ser observado que o SQL Server 2000 usa o operador +, enquanto os demais usam o operador || para concatenar cadeias de caracteres. Alm disso, o Oracle e o DB2 possuem a funo concat, nativa, para concatenar duas cadeias de caracteres. Embora o PostgreSQL e o SQL Server no possuam a funo concat nativa, esta pode ser facilmente definida neste dois produtos. PostgreSQL 8.0.0:
=> SELECT 'ae' || 'io' || 'u' AS vogais; vogais -------aeiou => CREATE FUNCTION concat(text,text) RETURNS text AS ' '> SELECT $1 || $2; '> ' LANGUAGE SQL STRICT; => SELECT concat(concat('ae','io'),'u') AS vogais; vogais -------aeiou
Oracle 10g:
SQL> SELECT 'ae' || 'io' || 'u' AS vogais FROM sys.dual; VOGAI ----aeiou SQL> SELECT concat(concat('ae','io'),'u') AS vogais FROM sys.dual; VOGAI ----aeiou
DB2 9.1:
db2 => SELECT t.* FROM (VALUES('ae' || 'io' || 'u')) AS t(vogais); VOGAIS -----aeiou db2 => SELECT t.* FROM (VALUES(concat(concat('ae','io'),'u'))) AS t(vogais); VOGAIS -----aeiou
http://pgdocptbr.sourceforge.net/pg80/functions-string.html
24/01/2012
Pgina 7 de 8
Oracle 10g
SQL> SELECT CHR(67)||CHR(65)||CHR(84) "Dog" 2 FROM sys.dual; Dog --CAT
SQL> SELECT INITCAP('the soap') "Capitals" 2 FROM sys.dual; Capitals --------The Soap
=> SELECT LOWER('MR. SCOTT MCMILLAN') AS "Lowercase"; Lowercase -------------------mr. scott mcmillan
SQL> SELECT LOWER('MR. SCOTT MCMILLAN') "Lowercase" 2 FROM sys.dual; Lowercase -------------------mr. scott mcmillan
SQL> SELECT LPAD('Page 1',15,'*.') "LPAD example" 2 FROM sys.dual; LPAD example --------------*.*.*.*.*Page 1
=> SELECT LTRIM('xyxXxyLAST WORD','xy') AS "LTRIM example"; LTRIM example --------------XxyLAST WORD
SQL> SELECT LTRIM('xyxXxyLAST WORD','xy') "LTRIM example" 2 FROM sys.dual; LTRIM example -----------XxyLAST WORD
=> SELECT REPLACE('JACK and JUE','J','BL') AS "Changes"; Changes ---------------BLACK and BLUE
SQL> SELECT REPLACE('JACK and JUE','J','BL') "Changes" 2 FROM sys.dual; Changes -------------BLACK and BLUE
SQL> SELECT RPAD('MORRISON',12,'ab') "RPAD example" 2 FROM sys.dual; RPAD example ----------------MORRISONabab
SQL> SELECT RTRIM('BROWNINGyxXxyyx','xy') "RTRIM example" 2 FROM sys.dual; RTRIM examp ----------BROWNINGyxX
=> SELECT TRANSLATE('2KRW229', (> '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ', (> '9999999999XXXXXXXXXXXXXXXXXXXXXXXXXX') AS "License"; License --------9XXX999
SQL> SELECT TRANSLATE('2KRW229', 2 '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ', 3 '9999999999XXXXXXXXXXXXXXXXXXXXXXXXXX') "License" 4 FROM sys.dual; License -------9XXX999
http://pgdocptbr.sourceforge.net/pg80/functions-string.html
24/01/2012
Pgina 8 de 8
PostgreSQL 8.0.0
=> SELECT TRANSLATE('2KRW229', (> '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ', '0123456789') -> AS "Translate example"; Translate example ------------------2229
Oracle 10g
SQL> SELECT TRANSLATE('2KRW229', 2 '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ', '0123456789') 3 "Translate example" 4 FROM sys.dual; Translate example ----------------2229
=> SELECT TRIM (0 FROM 0009872348900) AS "TRIM Example"; TRIM Example -------------98723489
SQL> SELECT TRIM (0 FROM 0009872348900) "TRIM Example" 2 FROM sys.dual; TRIM Example -----------98723489
Notas
[1]
Anterior
Principal Acima
Prxima
http://pgdocptbr.sourceforge.net/pg80/functions-string.html
24/01/2012