Il y a quelques mois, les requêtes Oracle cessaient de fonctionner sur notre serveur de services de reporting après un service pack sur le serveur de rapports. J'ai fini par devoir accorder des permissions sur les répertoires Oracle pour éliminer la première erreur et ensuite renommer l'entrée de registre NLS_LANG (en la supprimant effectivement) pour se débarrasser de la seconde erreur. L'ancienne valeur était: AMERICAN_AMERICA.WE8MSWIN1252Oracle Proc à SQL Reporting Services: le nom du jeu de caractères n'est pas reconnu
Maintenant, nous déplaçons de nouveaux rapports en production qui utilisent des procédures stockées Oracle et ils reçoivent cette erreur.
--- 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
J'ai créé une procédure de test qui retourne simplement
select 'test' "field1" from dual;
Il obtient la même erreur. Ce soir, je vais essayer de remettre NLS_LANG à sa vieille valeur et de voir si cela corrige les procédures - bien que cela brise les rapports d'Oracle ordinaires. Si quelqu'un a une idée de ce qui se passe, s'il vous plaît, éclaire-moi. D'après ce que j'ai lu, le client devrait utiliser la base de données par défaut si le jeu de caractères n'est pas spécifié sur le client.
Vous mentionnez une "ancienne" valeur NLS_LANG. Cela semble impliquer qu'il existe une "nouvelle" valeur NLS_LANG différente - quelle est cette nouvelle valeur? –
La nouvelle valeur est rien - j'ai renommé la clé de registre. Cela signifie que le client doit utiliser le paramètre de serveur. C'était pour corriger une erreur. – Sam
Quelles ont été les erreurs après le Service Pack? vous mentionnez que Oracle "a cessé de fonctionner", cela signifie-t-il que la base de données n'a pas pu démarrer? Avez-vous supprimé le paramètre NLS_LANG sur le serveur ou sur le client? –