レーキの問題に直面しています。rake を指定すると、rake は次のエラーで失敗します。
/Ruby/lib/ruby/site_ruby/1.8/oci8.rb:228 - ORA-28002: the password will expire within 5 days
ここでの問題は、OCILogon が OCI_SUCCESS_WITH_INFO としてステータスを与えることです。これは、evn.c では処理されないと思います。
コードを掘り下げてみると、確かに evn.c は OCI_SUCCESS のみをチェックしていましたが、その後、ruby の env.c にある関数 oci8_logon で次のようにコードを変更しました。
rv = OCILogon(envh->hp, envh->errhp, &svchp,
u.ptr, u.len, p.ptr, p.len, d.ptr, d.len);
if (rv != OCI_SUCCESS && rv != OCI_SUCCESS_WITH_INFO) {
oci8_raise(envh->errhp, rv, NULL);
}
それでも私は同じ問題に直面しています。戻り値 (rv) が 1 であることを確認しましたが、これは oci.h から OCI_SUCCESS_WITH_INFO であることが確認されました
次に何をする必要があるか分かりますか?
PS: アカウントが関連付けられているプロファイルを変更して、オラクル側でパスワードの有効期限の動作を変更したくありません。ルビーレベルでの回避策が必要です。