Ruby 修复运行时错误:NLS_LANG格式无效:AMERICAN

Ruby 修复运行时错误:NLS_LANG格式无效:AMERICAN,ruby,oracle,Ruby,Oracle,我试图从Ruby攻击Oracle,但在第一行出现错误。(实际上,我是在pry中这样做的,但这可能并不重要。) 问题是什么?我该如何解决 没有发现任何有希望的东西。(现在出现了这个问题。)stackoverflow上唯一类似于这个问题的另一个问题是处理一个不同的问题(即使用户设置了一个变量,该变量也没有任何值),并且那里的答案对我不起作用(建议的值也是无效的,并且在我的环境中没有设置$LANG,因此将其设置为该值不起作用。)我不知道值“AMERICAN”从何而来,但结果是ruby-oci8 gem

我试图从Ruby攻击Oracle,但在第一行出现错误。(实际上,我是在pry中这样做的,但这可能并不重要。)

问题是什么?我该如何解决


没有发现任何有希望的东西。(现在出现了这个问题。)stackoverflow上唯一类似于这个问题的另一个问题是处理一个不同的问题(即使用户设置了一个变量,该变量也没有任何值),并且那里的答案对我不起作用(建议的值也是无效的,并且在我的环境中没有设置
$LANG
,因此将其设置为该值不起作用。)

我不知道值“AMERICAN”从何而来,但结果是ruby-oci8 gem会接受的更好的选择是。

NLS_LANG
应该具有格式

这里有一个与您的确切用例对应的示例:

NLS_LANG环境变量设置为所有基于UNIX的平台上shell的本地环境变量。例如,如果操作系统区域设置为en_US.UTF-8,则相应的NLS_LANG环境变量应设置为AMERICAN_AMERICA.AL32UTF8

请注意
AL32UTF8
UTF8
(不带连字符)的超集,可接受所有Unicode字符。
UTF8
仅支持Unicode 3.1及更早版本。我强烈建议使用
AL32UTF8
作为默认的“UTF-8”字符集,除非您有非常特殊的需要


在Oracle 12.1中,
AL32UTF8
最多支持Unicode 6.1。一个优点是
AL32UTF8
支持Unicode 4.0引入的(代码点从U+10000到U+10FFFF)

哎哟……正文中的一个是原始值,然后我尝试了另一个值,但没有解决它……我将更新标题,使其与原始问题一致,而不是第一次尝试解决它
[1] pry(main)> require 'oci8'
RuntimeError: Invalid NLS_LANG format: AMERICAN