0

データベース ダッシュボード レポート ソフトウェア (Logi Info) でグラフを作成しようとしています。複数の値を持つ ref カーソルを返す PL SQL パッケージを持っていますが、Logi Info がこれをサポートしていないようで、エラーが発生しますORA-00904: "DASHBOARD_PACKAGE"."GETSUMMARYDATA": invalid identifier。サポートされていないか、クエリが間違っていると思います。これは私のクエリです:

デュアルからdashboard_package.getSummaryData(1,sysdate)を選択

それは複数の値を返す関数を呼び出す方法ですか? もしそうなら、この問題の解決策はありますか (戻り値の型はサポートされていません)?

4

2 に答える 2

0

これはコンパイル エラーです。関数GETSUMMARYDATA()が無効なオブジェクト名、テーブル、列などを参照しています。動的 SQL を使用している場合、実行時までこのコンパイル エラーは発生しません。

そのため、関数のソースをコーディングして、誤った名前のものを見つける必要があります。エラーメッセージに付随する行番号は、ここで役立ちます。

于 2011-01-06T14:13:00.767 に答える
0

SQL*Plus を使用している場合、REF CURSORS にアクセスするには特別な構文を使用する必要があります。

これは、SQL*Plus のマニュアルで詳しく説明されています

したがって、あなたの場合は次のようになります。

変数 cv REFCURSOR
EXECUTE dashboard_package.getSummaryData(1, sysdate, :cv)
印刷履歴書

:cv変数の位置は、プロシージャの定義によって異なることに注意してください。
しかし、ソースコードを見せてくれなかったので...

編集
すべての可能性をカバーするには (APC で言及されているように): 関数が実際に ref カーソルを返す場合、マニュアルの次の章で説明されているように、構文はわずかに異なります:
http://download.oracle.com/docs/cd /B19306_01/server.102/b14357/ch5.htm#sthref1128

変数 cv REFCURSOR
:cv := dashboard_package.getSummaryData(1, sysdate); を実行します。
印刷履歴書
于 2011-01-06T13:57:59.603 に答える