0

私が扱っているアプリケーションのストアドプロシージャは、ORA 01001:無効なカーソルエラーを散発的に生成しています。エラーが発生すると、多くのユーザーがこのエラーを応答としてヒットし、しばらくすると自動的に修正され、通常の状態に戻ります。

このORA01001エラーは、公式ドキュメント(Oracle 10gドキュメント)には記載されていません。しかし、そのエラーはOracle10gから発生していることがわかりました。最大オープンカーソルを定期的に監視しましたが、問題はありませんでした。エラーが生成されるストアドプロシージャポイントは、単純なSELECT(暗黙カーソルを使用)です。

編集:以下はコードです:

l_sql_point:=12; 
If l_country_id='RU' 
Then select count(*) into l_rub_count from lcs_currency where currency_cd='RUB'; 
End If; 
Begin 
  select group_id into l_group from lcs_country where country_id=l_country_id; 
Exception when no_data_found 
  Then p_lcs_err_cd:='LCD1001'; 
       p_lcs_err_text:='Invalid Country Code - '||l_country_id; 
        p_err_text:='Invalid Country Code - '||l_country_id; --  return ret_result_set; 
End; 

次のエラーが発生します。xxsql_point:12----ORA-01001: invalid cursor

貴重なご協力ありがとうございます!

4

1 に答える 1

0

私の経験から、次の場合に ORA-01001 無効なカーソル エラーが発生します。

  • 既存の開いているカーソルを開こうとしています
  • カーソルが閉じられているか、まだ開いていないときに、カーソル属性にアクセスしようとしました

コードベースを確認し、閉じられていないカーソルがあり、再度開き直そうとしていることを確認してください。

于 2012-04-17T09:37:34.803 に答える