Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Comentário: Revisão do conteúdo

Pagetitle
Collation adotado para a aplicaçãoCollation adotado para a aplicação
Em linhas gerais, as aplicações AdvPL
, 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

homologados

através do 

Inclusão de trecho
DBAccess
DBAccess
nopaneltrue

 exigem que o Banco de Dados seja criado e/ou configurado para atender aos seguintes comportamentos

 requerem para o funcionamento que sejam respeitados a tabela de caracteres suportada, sua comparação e ordenação (comportamento legado):

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

Para atender essa necessidade, a instância e/ou o banco de dados

possui uma forma de definir estes parâmetros e estes comportamentos, alguns deles exigem que o Database seja criado com estas definições.  

deve ser criado e/ou configurado de acordo com as definições a seguir:

Banco de DadosCollationCharacter 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

pt_BR.CP1252 e e/ou Portuguese_Brazil.1252

WIN1252
Aviso

Para o banco PostgreSQL, precisamos informar três informações :  LC_COLLATE (Collation), LC_CTYPE (Character Type) e ENCODING. Os parâmetros adequados para contemplar os comportamentos esperados, inclusive com suporte a caracteres acentuados pelas funções do SGDB – como lower() / upper() – devem usar as informações dispostas na tabela acima. O uso do encoding LATIN1 no Postgres com o collation e character type "C" não suportam as funções de tratamento de caracteres acentuados – como lower() e upper(). 

A utilização do Postgres em Linux 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. 

Painel
  • Character set (ou CharSet) é  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 character set.
  • Encoding é a forma que o o Banco banco de Dados dados armazena os campos caracteres (CHAR/VARCHAR).Alguns

(informação) Alguns bancos de dados agregam

na definição de Collation uma informção composta, que englobam as demais definições juntas , como o Characher Type , Code Set e o Encoding

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