web-dev-qa-db-ja.com

空のパッケージ<パッケージ名>の定義(パブリックメンバーなし)

Oracle SQL Developerが入力パラメータを持たないパブリック・メンバー(プロシージャ)を表示しないパッケージを実行またはデバッグしようとすると、問題が発生します。

いくつかのプロシージャといくつかのオーバーロードがありますが、Oracle SQLDeveloperは呼び出し可能なメンバーを表示しません。

enter image description here

次のバージョンのOracleSQLDeveloperを試してみました

  • 4.1.1.19 このバージョンで問題が解決したという記事へのリンクが、解決しなかった
  • 4.0.3.16-同じ動作
  • 4.0.0.13-同じ動作
  • 3.2.20.09-このバージョンは実際には呼び出し可能なメンバーを表示しましたが、デバッガーは機能しません。

これはOracleバージョンです:

select * from v$version;

Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
PL/SQL Release 11.2.0.4.0 - Production
"CORE   11.2.0.4.0  Production"
TNS for IBM/AIX RISC System/6000: Version 11.2.0.4.0 - Production
NLSRTL Version 11.2.0.4.0 - Production

誰かが同様の状況をうまく解決しましたか? (データベースのアップグレードはオプションのATMではありません)

9

パブリックメンバーなしの問題を引き起こす可能性のある2つの考えられる原因を見つけました

1)SQL Developerは、ある種のバグ自体にぶつかりました。これは、SQL開発者を完全に閉じて再起動することで解決できます。

2)コードで使用されているいくつかのキーワード(SQLステートメントのフィールド名など)は、コンパイルされた実行では正常に機能しますが、関数リストの表示を台無しにします。

「CASE」という名前のフィールドが使用されているパッケージ全体に二重引用符を適用することで、問題を解決しました。

つまり、SELECT table1.case FROM table1

への変更

SELECTtable1。 "CASE" FROM table1

アレックス

3
Alex Ma

少し遅れましたが、私は助けることができました。 SqlDeveloperのバグがあります。私がしなければならないのは、コンパイルする前に「保存」することです...

それが役に立てば幸い

3
Diego

間違いなく遅いですが、同じ問題に遭遇し、私を助けたものを投稿することを考えました。

Procは別のユーザーに属するパッケージに含まれており、procを呼び出していたユーザーに付与は提供されませんでした。

助成金が完了すると機能します。

1
PS_