6

我在 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 文件),并且特殊字符都搞砸了。

我怎样才能让红宝石看到价值?

4

1 回答 1

12

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

export NLS_LANG

或与设置一起:

export NLS_LANG=en_US.UTF-8

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

export NLS_LANG=$LANG
于 2012-05-11T21:43:30.603 回答