Você está na página 1de 2

Funes e operadores para cadeias de caracteres

Page 1 of 2

Esto disponveis funes adicionais para manipulao de cadeias de caracteres, conforme mostrado na Tabela 9-8 . Algumas delas so utilizadas internamente para implementar funes de cadeia de caracteres do padro SQL , conforme mostrado na Tabela 9-7 . Tabela 9-8. Outras funes para cadeia de caracteres

Funo
ascii( text ) btrim (cadeia_de_caracteres text , caracteres text ) chr (integer ) convert (cadeia_de_caracteres text , [codificao_de_origem name ,] codificao_de_destino name ) decode( cadeia text , tipo text )

Tipo retornado
integer

Descrio

Exemplo
120

Resultado

text

text

text

bytea

encode( dados bytea, tipo text )

text

initcap (text ) length (cadeia_de_caracteres )

text

integer

lpad (cadeia_de_caracteres text , comprimento integer text [, preenchimento text ])

ltrim (cadeia_de_caracteres text , caracteres text ) md5 (cadeia_de_caracteres text ) pg_client_encoding()

text

text name

quote_ident (cadeia_de_caracteres
text)

text

quote_literal (cadeia_de_caracteres
text)

text

repeat( text , integer ) text replace (cadeia_de_caracteres text text , origem text , destino text )

cdigo ASCII do primeiro caractere do ascii('x') argumento Remove a maior cadeia de caracteres contendo apenas os caracteres presentes btrim('xyxtrimyyx', 'xy') em caracteres (espao por padro), do incio e do fim da cadeia_de_caracteres chr(65) Caractere com o cdigo ASCII fornecido Converte a cadeia de caracteres na codificao_de_destino . A codificao de convert origem especificada por ( 'texto_em_unicode', codificao_de_origem . Se a 'UNICODE', 'LATIN1') codificao_de_origem for omitida, ser assumida a codificao do banco de dados. Decodifica os dados binrios da cadeia_de_caracteres previamente decode('MTIzAAE=', 'base64') codificada com encode() . O tipo do parmetro o mesmo que em encode() . Codifica dados binrios na representao encode( '123\\000 somente ASCII. Os tipos suportados so: \\001', 'base64') base64 , hex e escape . Converte a primeira letra de cada palavra initcap('hi THOMAS') (separadas por espao em branco) em maiscula Nmero de caracteres presentes na cadeia length('Jos') de caracteres Preenche a cadeia_de_caracteres at o comprimento adicionando os caracteres de preenchimento (espao por padro) lpad('hi', 5, 'xy') 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 ltrim('zzzytrim', 'xyz') caracteres do incio da cadeia_de_caracteres . Calcula o MD5 da cadeia_de_caracteres , md5('abc') retornando o resultado em hexadecimal. pg_client_encoding() 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 so adicionadas somente quando h quote_ident('Foo') necessidade (ou seja, se a cadeia de caracteres contiver caracteres noidentificadores, ou se contiver letras maisculas e minsculas). As aspas internas so devidamente duplicadas. Retorna a cadeia de caracteres fornecida apropriadamente entre apstrofos, para ser utilizada como literal cadeia de quote_literal caracteres na cadeia de caracteres de um ( 'O\'Reilly') comando SQL . Os apstrofos e contrabarras embutidos so devidamente duplicados. repeat('Pg', 4) Repete o texto o nmero de vezes Substitui todas as ocorrncias de origem por destino na cadeia_de_caracteres Preenche a cadeia_de_caracteres at o comprimento anexando os caracteres de preenchimento (espao por padro) direita. Se a cadeia_de_caracteres for
replace ( 'abcdefabcdef', 'cd', 'XX')

trim

Representao na codificao ISO 8859-1 do


texto_em_unicode

123\000\001

MTIzAAE=

Hi Thomas

xyxhi

trim

900150983cd24fb0 d6963f7d28e17f72 LATIN1

"Foo"

'O''Reilly'

PgPgPgPg

abXXefabXXef

text rpad (cadeia_de_caracteres text , comprimento integer

rpad('hi', 5, 'xy')

hixyx

http://pgdocptbr.sourceforge.net/pg74/functions-string.html

17/02/2009

Funes e operadores para cadeias de caracteres

Page 2 of 2

[, preenchimento text ])

rtrim (cadeia_de_caracteres text, caracteres text) split_part (cadeia_de_caracteres text , delimitador text , campo integer) strpos (cadeia_de_caracteres , caracteres)

text

mais longa que o comprimento , ento truncada. Remove do final da cadeia_de_caracteres , a cadeia de caracteres mais longa rtrim('trimxxxx', 'x') trim contendo apenas os caracteres presentes em caracteres. Divide a cadeia_de_caracteres utilizando o split_part ( 'abc~@~def~@~ghi', def delimitador , retornando o campo '~@~', 2) especificado (contado a partir de 1). Posio dos caracteres especificados; o mesmo que position( caracteres in strpos('high', 'ig') 2 cadeia_de_caracteres ) , mas deve ser observada a ordem invertida dos argumentos Extrai a subcadeia de caracteres substr('alphabet', 3, caracteres; o mesmo que substring ph
( cadeia_de_caracteres from origem for contador ) 2)

text

text

substr (cadeia_de_caracteres , origem [, contador ]) to_ascii (text [, codificao ]) to_hex( nmero integer ou bigint)

text

text text

Converte texto em outras codificaes em to_ascii


ASCII [a]
('Conseqncia') to_hex(2147483647)

Consequencia 7fffffff

translate (cadeia_de_caracteres text , origem text , destino text text )

Converte o nmero em sua representao hexadecimal equivalente Todo caractere da cadeia_de_caracteres que corresponde a um caractere do conjunto origem, substitudo pelo caractere correspondente do conjunto destino .

translate('12345', '14', 'ax')

a23x5

Notas: a. A funo to_ascii permite apenas a converso das codificaes LATIN1 , LATIN2 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] .
=> CREATE FUNCTION maiusculas(text) RETURNS text AS ' '> SELECT translate( upper($1), '> text '''', '> text '''') '> ' LANGUAGE SQL STRICT; => SELECT maiusculas(' ao seqncia'); maiusculas ----------------- AO SEQNCIA (1 linha) => CREATE FUNCTION minusculas(text) RETURNS text AS ' '> SELECT translate( lower($1), '> text '''', '> text '''') '> ' LANGUAGE SQL STRICT; => SELECT minusculas(' AO SEQNCIA'); minusculas ----------------- ao seqncia (1 linha)

http://pgdocptbr.sourceforge.net/pg74/functions-string.html

17/02/2009