+55 (11) 4506-3239
academy@glsolutions.com.br

1 fev 2010

Codificação no Oracle para Portal 6.1.5

//
Comments2

Recentemente me deparei com um problema após transferir o banco de dados cloudscape de um portal 6.1.5 enable para o Oracle 10.2.0.3.0.
Neste ambiente existe apenas um Banco com dois shemas. Um shema é para o Portal 6.0.1.6 e outro para Portal 6.1.5.
A transferência do banco do portal 6.0.1.6 foi executada com sucesso, os testes foram realizados sendo possível fazer login no portal e navegar nas páginas bem como criar conteúdos, PDM, etc.
No caso do portal 6.1.5, o banco foi transferido com sucesso, porém, no SystemOut.log uma mensagem de erro foi exibida.

EJPDB0085W: The character encoding of the database is not UTF-8 seguido de EJPFD0016E: Initialization of service failed.
com.ibm.wps.util.DataBackendException: EJPDB0160E: The sanity checks of the database layer failed

O estranho neste caso é que neste mesmo Banco existe o shema do portal 6.0.1.6 que está funcionando perfeitamente, portanto entende-se que a codificação do banco que é apenas um para dois shemas está correta.

Bem, para saber como está a codificação do banco no oracle basta digitar o comando no SQLPlus.

SELECT VALUE FROM NLS_DATABASE_PARAMETERS WHERE PARAMETER IN (‘NLS_CHARACTERSET’, ‘NLS_NCHAR_CHARACTERSET’);
SELECT PROPERTY_VALUE FROM DATABASE_PROPERTIES WHERE PROPERTY_NAME IN(‘NLS_CHARACTERSET’, ‘NLS_NCHAR_CHARACTERSET’)

Ele irá exibir da seguinte forma.

PROPERTY_NAME                  PROPERTY_VALUE
———————————————- 
NLS_CHARACTERSET               WE8ISO8859P1
NLS_NCHAR_CHARACTERSET         UTF8

Veja que o valor NLS_CHARACTERSET encontra-se como WE8ISO8859P1 que é um tipo de codificação não suportada pelo portal. No portal 6.0.1.6 funciona pois ele utiliza apenas o valor NLS_NCHAR_CHARACTERSET que já encontra-se como UTF-8. Já o portal 6.1.5 ele utiliza os dois valores NLS_NCHAR_CHARACTERSET e NLS_CHARACTERSET. Bem, neste caso para corrigir o problema, o valor NLS_CHARACTERSET deve ser alterado para um dos formatos suportados como UTF8, AL32UTF8, ou AL16UTF16.

2 Responses

Leave a Reply