Ruby无法看到NLS_LANG环境变量

时间:2012-05-11 20:50:32

标签: ruby bash oci8

我在CentOS上运行ruby脚本,并通过rvm(1.9.3)安装ruby。

我在.bash_profile中设置了NLS_LANG变量。

[app@box stasis]$ echo $NLS_LANG
en_US.UTF-8
[app@box stasis]$ which ruby
~/.rvm/rubies/ruby-1.9.3-p194/bin/ruby

但是当试图通过ruby(oci8驱动程序)访问它时,它无法找到它:

 1.9.3-p194 :001 > ENV['NLS_LANG']
 => nil 

访问其他变量似乎有效:

 1.9.3-p194 :004 > ENV['USER']
 => "app"

我的脚本显示以下内容:Warning: NLS_LANG is not set. fallback to US7ASCII.

我正在从ruby脚本运行sqlplus(执行一些.sql文件),并且特殊字符都搞砸了。

如何让红宝石看到价值?

1 个答案:

答案 0 :(得分:11)

您需要将变量导出为在任何运行的应用程序中可用(除非它们是函数):

export NLS_LANG

或与设置一起:

export NLS_LANG=en_US.UTF-8

或大多数系统LANG应该可用:

export NLS_LANG=$LANG