【问题标题】:Oracle Proc to SQL Reporting Services: character set name is not recognizedOracle Proc 到 SQL Reporting Services:字符集名称无法识别
【发布时间】:2009-07-27 17:24:46
【问题描述】:

几个月前,在报告服务器上的服务包之后,Oracle 查询停止在我们的报告服务服务器上运行。我最终不得不授予对 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 报告。如果有人知道发生了什么,请赐教。

根据我的阅读,如果客户端上未指定字符集,则客户端应该使用数据库默认值。

【问题讨论】:

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

标签: sql-server sql-server-2005 oracle reporting-services


【解决方案1】:

关键是第一条错误信息:

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

这导致了这个:

http://www.dba-oracle.com/t_ora_12705_error.htm

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

现在工作!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-20
    • 2018-04-08
    • 1970-01-01
    相关资源
    最近更新 更多