Há alguns meses, as consultas do Oracle pararam de funcionar em nosso servidor de serviços de relatórios depois de um service pack no servidor de relatórios.
Acabei tendo que conceder permissões nos diretórios do Oracle para eliminar o primeiro erro e, em seguida, renomeie a entrada de registro NLS_LANG para me livrar do segundo erro. O valor antigo era: AMERICAN_AMERICA.WE8MSWIN1252
Agora estamos movendo alguns novos relatórios para produção que usam procedimentos armazenados do Oracle e estão recebendo esse erro.
--- End of inner exception stack trace ---
w3wp!processing!8!7/27/2009-09:26:09:: e ERROR: An exception has occurred in data source 'CSUD3_RPTAPL'. Details: Microsoft.ReportingServices.ReportProcessing.ReportProcessingException: Query execution failed for data set 'MYDATASET'. ---> System.Data.OracleClient.OracleException: ORA-06550: line 1, column 57:
PLS-00553: character set name is not recognized
ORA-06550: line 0, column 0:
PL/SQL: Compilation unit analysis terminated
Eu criei um procedimento de teste que simplesmente retorna
select 'test' "field1" from dual;
Obtém o mesmo erro. Hoje à noite eu tentarei configurar o NLS_LANG de volta ao seu valor antigo e ver se isso corrige os procedimentos - embora isso quebre os relatórios regulares da oracle. Se alguém tiver uma pista do que está acontecendo, por favor me esclareça.
Pelo que eu li, o cliente deve estar usando o banco de dados padrão se o conjunto de caracteres não estiver especificado no cliente.