2011-01-06 31 views
0

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

は、デュアル

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

+2

"DASHBOARD_PACKAGE"、 "GETSUMMARYDATA"のパッケージ仕様を投稿できますか? – Harrison

答えて

0

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

これはよくSQL * Plusのマニュアルで説明されています。
http://download.oracle.com/docs/cd/B19306_01/server.102/b14357/ch5.htm#sthref1127

だから、それはあなたのケースでは、このようなものになるだろう::cv変数の位置が依存する

 
VARIABLE cv REFCURSOR 
EXECUTE dashboard_package.getSummaryData(1, sysdate, :cv) 
print cv 

注意プロシージャの定義
しかし、あなたは(APCで述べたように)すべてのpossibiliesをカバーするために私たちのソースコード...

編集
を示さなかったとして: 機能が実際に参照カーソルを返す場合、構文はわずかですマニュアルの次の章で説明したように異なる:
http://download.oracle.com/docs/cd/B19306_01/server.102/b14357/ch5.htm#sthref1128

 
VARIABLE cv REFCURSOR 
execute :cv := dashboard_package.getSummaryData(1, sysdate); 
print cv 
+0

OPには、REFカーソルを返す関数が定義されており、投稿されたSQL呼び出しがこれを実証しているようです。 SQL * Plusは、少なくとも最新のバージョンでは、変数を必要とせずにSELECT文でREFカーソルをサポートします。彼らの他の質問への私の応答を見てください:http://stackoverflow.com/questions/4614475/how-to-call-a-function-in-a-package/4615302#4615302 – APC

+0

これは私たちが実際の情報源コード... –

+0

私はあなたの提案がORA-00904エラーに対する非常に投機的な解決であることに確かに同意します;) – APC

0

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

だから、あなたの関数のソースをコード化し、誤った名前のものを見つける必要があります。エラーメッセージとともに表示される行番号は、ここで役立ちます。

関連する問題