- 締切済み
Webからの登録
oracle初心者ですが、よろしくお願いします。 下記のようなスクリプト(Perl)を作成し、コマンドプロンプトで実行したところoracleへ登録することができましたが、cgiとして実行すると接続の際にエラーがでます。 権限の問題かと思いましたが、windowsでは特にそのような設定はないとのことでした。 また、mysqlで同じようなcgiを作成したところ、成功しました。 どなたかわかる方、教えていただけませんでしょうか? $hDb = DBI->connect("dbi:Oracle:orcl", "test/test") or die "CONNECT ERROR $DBI::ERRSTR"; $sth = $hDb->prepare("UPDATE test SET NAME='$NAME' WHERE ID='$ID'"); $sth->execute; $sth->finish; $hDb->disconnect; こちらの環境は以下の通りです。 ActivePerl5.8.7 windows2003server standard edition oracle9i よろしくお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- entree
- ベストアンサー率55% (405/735)
回答No.1
そのエラー内容を書かれていないのでは回答しようがないのでは? 環境変数はちゃんと設定されていますか? 必ずしも Web サーバから引き継がれているとは限りませんので。
補足
すみません。 エラーの詳細をご説明するのを忘れていました。 インターネットブラウザの方には、Internal Server Errorと表示されるスクリプトとされないスクリプトがあります。今回テストしたものに関しては、「登録完了しました。ご協力ありがとうございます。」と表示されました。 Apacheのエラーログには以下のメッセージが残されています。 DBI connect('orcl','test/test',...) failed: ORA-12705: invalid or unknown NLS parameter value specified(DBD ERROR: OCISessionBegin) at C:/Apache2/htdocs/test.cgi line 15\r CONNECT ERROR at C:/Apache2/htdocs/test.cgi line 15.\r test.cgiの全文は以下の通りです。 --------------------------------------- #!c:/Perl/bin/Perl.exe use DBI; print "Content-type: text/html\n\n"; print "<HTML>\n"; print "<HEAD>\n"; print "<TITLE>登録完了</TITLE></HEAD>\n"; print "<BODY>\n"; print "登録完了しました。\n"; print "ご協力ありがとうございます。\n"; print "</BODY>\n"; print "</HTML>\n"; $hDb = DBI->connect("DBI:Oracle:orcl", "test/test") or die "CONNECT ERROR $DBI::ERRSTR"; $sth = $hDb->prepare("UPDATE WEBGIS SET NAME='田中' WHERE ID=10"); $sth->execute; $sth->finish; $hDb->disconnect; --------------------------------------- 知識不足なところもあり、ご迷惑をおかけしますが、よろしくお願いします。