Forum: Ruby Problem with rubyscript2exe, OCI8, registry

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Daniel B. (Guest)
on 2007-06-26 17:25
(Received via mailing list)
Hi,

Ruby 1.8.6
Rubyscript2exe 0.5.3
OCI8 1.0.0rc2
Windows XP Pro

I wrote a program that uses DBI + OCI8. It compiles fine, but when I
run the executable I get an NLS_LANG error from Oracle. This does not
happen if I run it from the command line.

env.c:257:in oci8lib.so: ORA-12705: invalid or unknown NLS parameter
value specified (DBI::DatabaseError)
        from C:/DOCUME~1/djberge/eee/eee.ntm.exe.3/lib/oci8.rb:210:in
`initialize'
        from C:/DOCUME~1/djberge/eee/eee.ntm.exe.3/lib/DBD/OCI8/
OCI8.rb:54:in `new'
        from C:/DOCUME~1/djberge/eee/eee.ntm.exe.3/lib/DBD/OCI8/
OCI8.rb:54:in `connect'
        from C:/DOCUME~1/djberge/eee/eee.ntm.exe.3/lib/dbi.rb:424:in
`connect'
        from C:/DOCUME~1/djberge/eee/eee.ntm.exe.3/lib/dbi.rb:215:in
`connect'
        from C:\DOCUME~1\djberge\eee\eee.ntm.exe.3\app\ntm.rb:16
        from C:\DOCUME~1\djberge\eee\eee.ntm.exe.3\bootstrap.rb:77:in
`load'
        from C:\DOCUME~1\djberge\eee\eee.ntm.exe.3\bootstrap.rb:77

The only way that can happen is if it's reading from the registry,
because I definitely do NOT have an NLS_LANG environment variable set,
though it's set in the registry to "NA" (North America). I tried
several things - explicitly setting the NLS_LANG environment variable
to nil, setting ORACLE_HOME and/or TNS_ADMIN explicitly, etc.

However, the only thing that worked was to literally rename the
NLS_LANG registry entry under
HKEY_LOCAL_MACHINE/Software/Oracle.

Why is that happening?

Thanks,

Dan
Daniel B. (Guest)
on 2007-06-27 22:53
(Received via mailing list)
On Jun 26, 7:24 am, Daniel B. <removed_email_address@domain.invalid> wrote:
> Hi,
>
> Ruby 1.8.6Rubyscript2exe0.5.3
> OCI8 1.0.0rc2
> Windows XP Pro
>
> I wrote a program that uses DBI + OCI8. It compiles fine, but when I
> run the executable I get an NLS_LANG error fromOracle. This does not
> happen if I run it from the command line.

<snip>

I found that doing this at the top of the script solved the problem:

ENV['NLS_LANG'] = "AMERICAN_AMERICA.WE8ISO8859P15"

YMMV.

Regards,

Dan
This topic is locked and can not be replied to.