Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

Pagetitle
Collation, Character Type e Code Set/Encoding
Collation, Character Type e Code Set/Encoding

As aplicações 

Inclusão de trecho
AdvPL
AdvPL
nopaneltrue
, principalmente rotinas legadas, que acessam os bancos de dados relacionais através do 
Inclusão de trecho
DBAccess
DBAccess
nopaneltrue
 requerem para o funcionamento que sejam respeitados a tabela de caracteres suportada, sua comparação e ordenação (comportamento legado):

  • Tabela de caracteres suportada: CP1252/Windows-1252 – Tabela de caracteres padrão do Windows que contempla os caracteres acentuados de idiomas latinos.
  • Ordenação e comparação: Binary Order (ordenação binária) – ordem crescente de acordo com o valor dos bytes de cada caractere.

Para atender essa necessidade, a instância e/ou o banco de dados deve ser criado e/ou configurado de acordo com as definições a seguir:


Banco de DadosCollationCharacter
Set e CollationCharacter set é
TypeCode Set/Encoding
IBM DB2
IDENTITY
n/a
1252
IBM Informix
(default = code-set)
n/a
EN_US.CP1252
Microsoft SQL
Latin1_General_BIN
n/a
n/a
MySQL
latin1_bin
n/a
n/a
ORACLE
n/a
n/a
WE8MSWIN1252
PostgreSQL
C

*.CP1252 e/ou *.1252

WIN1252
Painel
  • Character set ou CharSet é um conjunto de símbolos e códigos.
  • Collation
é
  •  é o conjunto de informações e regras que descreve a comparação e ordenação dos caracteres de um de
um
  • um character set.
  • Encoding é a forma que o o banco de dados armazena os campos caracteres (CHAR/VARCHAR).

(informação) Alguns bancos de dados agregam ao collation as definições do character type, code set e o encoding


Aviso
titlePostgreSQL - Funções do banco de dados e caracteres acentuados

Ao utilizar um banco de dados PostgreSQL instale e configure os parâmetros LC_COLLATE (collation), LC_CTYPE (character type) e ENCODING, conforme relacionado na tabela Banco de Dados, Collation, Character Type e Code Set/Encoding.

Quando utilizado o encoding LATIN1 – diferente do encoding indicado na tabela Banco de Dados, Collation, Character Type e Code Set/Encoding, funções do banco de dados que manipulam caracteres – por exemplo lower()/upper(), não suportam/tratam caracteres acentuados. Exemplo:

Sem Formato
SQL> select upper('acentuação'), lower('ACENTUAÇÃO')
+----------+----------+
|column1   |column2   |
+----------+----------+
|ACENTUAçãO|acentuaÇÃo|
+----------+----------+
Nota
titlePostgreSQL - Codepage e localização

Em ambiente Linux, a utilização do PostgreSQL exige a instalação do codepage CP1252 para a localização pt_BR, para ser possível criar o Database com os parâmetros recomendados. 

Banco de DadosCollationIBM DB2IBM-1252IBM InformixEN_US_CP1252Microsoft SQLLatin1_General_BINORACLEWE8MSWIN1252PostgreSQLLatin1