我的一个系统遇到了一个问题,其中安装了多个 Oracle 版本以支持各种应用程序,但我需要使用本地系统帐户将程序作为 Windows 服务运行。目前,我收到以下错误:
System.Exception:OCIEnvNlsCreate 失败,返回代码为 -1,但错误消息文本不可用。
但我被告知这可能是由于本地系统帐户的环境变量设置不正确。因此,我该如何实际更改本地系统帐户的值?
答案1
如果您不介意将其设置为系统范围的,只需在“我的电脑”属性的“高级”页面中“环境变量”对话框的系统部分中进行设置即可。这肯定会将其设置为系统上下文。您也可以始终根据每个用户覆盖它。
如果您确实只想在 SYSTEM 上下文中设置它,请将其添加到:HKEY_USERS\.Default\Environment
如果您想使用 Explorer UI 执行此操作,请使用控制台会话中的“at (time now + 1 分钟) /INTERACTIVE CMD”技巧以 SYSTEM 身份启动命令提示符,终止以您的用户帐户运行的 Explorer 进程,然后从 SYSTEM 命令提示符启动 Explorer。(这确实进入了“不受支持”的领域,我不一定鼓励您这样做……)
我刚刚设置了系统范围的环境变量。
答案2
我还想考虑创建一个专用服务帐户,授予它所需的权限,配置服务以在这些凭据下运行,并为该帐户的配置文件设置 ORACLE_HOME 变量。您会发现这样更容易审核程序正在做什么。