2014-12-15 3 views
0

Я пытаюсь подключиться к базе данных удаленного оракула в своем приложении perl. При запуске приложения появляется следующее сообщение об ошибке:Perl to Oracle Connection Error: ERROR OCINlsEnvironmentVariableGet (OCI_NLS_CHARSET_ID)

"Connection Error: ERROR OCINlsEnvironmentVariableGet(OCI_NLS_CHARSET_ID)" 

Я получил Oracle Instant Client и поместил его локально затем установить Oracle Home окр к нему, так как у меня нет там установлен клиент Oracle. Мой код ниже:

BEGIN { 
     $ENV{NLS_LANG}   = "AMERICAN_AMERICA.UTF8"; 
     $ENV{OCI_NLS_CHARSET_ID} = "AMERICAN_AMERICA.UTF8"; 
     $ENV{ORACLE_HOME} = #The path to the instant Oracle client"; 
     } 
    #Connect to database 
    my $DBHandle = DBI->connect(
     "dbi:Oraclehost=$host;sid=$sid;port=$port", 
     $userName, 
     $passWord 
    ) or die "Connection Error: $DBI::errstr\n"; 

Я использую ActiveStat Perl на Windows Server 2008, ORACLE 10g

ответ

1

Я мог бы найти причину. Я использовал Oracle Instant Client lite (instantclient-basiclite-win64-10.2.0.5), который содержит только двоичные файлы. Затем я попробовал Oracle Instant Client - SDK, который содержит только lib.
Я обнаружил, что мне нужно объединить оба, чтобы заставить мой код работать, я использовал SDK в качестве основного клиента, создал каталог bin, а затем поместил в него Lite-клиент ... он работает!

 Смежные вопросы

  • Нет связанных вопросов^_^