Sql server Oracle Proc to SQL Reporting Services:无法识别字符集名称

Sql server Oracle Proc to SQL Reporting Services:无法识别字符集名称,sql-server,sql-server-2005,oracle,reporting-services,Sql Server,Sql Server 2005,Oracle,Reporting Services,几个月前,在报表服务器上安装了service pack之后,Oracle查询停止在我们的reporting services服务器上工作。最后我不得不授予Oracle目录的权限以消除第一个错误,然后重命名NLS_LANG注册表项(有效地删除它)以消除第二个错误。旧值是:AMERICAN_AMERICA.WE8MSWIN1252 现在,我们正在将一些使用Oracle存储过程的新报表转移到生产环境中,他们会遇到此错误 --- End of inner exception stack trace

几个月前,在报表服务器上安装了service pack之后,Oracle查询停止在我们的reporting services服务器上工作。最后我不得不授予Oracle目录的权限以消除第一个错误,然后重命名NLS_LANG注册表项(有效地删除它)以消除第二个错误。旧值是:AMERICAN_AMERICA.WE8MSWIN1252

现在,我们正在将一些使用Oracle存储过程的新报表转移到生产环境中,他们会遇到此错误

   --- 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
我创建了一个简单返回的测试过程

select 'test' "field1" from dual;
它会得到同样的错误。今晚,我将尝试将NLS_LANG设置回原来的值,看看这是否修复了过程——尽管这会破坏oracle的常规报告。如果有人知道发生了什么,请告诉我


从我读到的内容来看,如果客户机上没有指定字符集,那么客户机应该使用数据库默认值

该键是第一条错误消息:

ORA-12705:无法访问NLS数据文件或指定的环境无效

这导致了:

然后仔细检查文件夹权限。我需要向ORACLE_主目录和子目录上经过身份验证的用户授予perms


现在工作

您提到了一个“旧”NLS_LANG值。这似乎意味着有一个不同的“新”NLS_LANG值——新值是什么?新值什么都不是——我重命名了注册表项。这意味着客户端应该使用服务器设置。这是为了修复您收到的错误。在service pack之后,您收到了哪些错误?您提到Oracle“停止工作”,这是否意味着数据库无法启动?。您删除了服务器或客户端上的NLS_LANG参数了吗?我修复了第一句不清楚的话。在reporting services上使用oracle的报表已停止工作。我们删除了客户端上的NLS_LANG以使其正常工作。