2017-03-25 15 views
-1

サードパーティのレポートツールから呼び出されたoracleストアドプロシージャがあります。ストアドプロシージャは、実行時に行を返しません。Oracleストアドプロシージャビューsys_refcursor

私は実際には、クエリの結果がどこかで間違っていることを知っていますが、パラメータはウェブサイトから渡されます。

実行中のクエリを表示しようとしていますが、ログにはストアドプロシージャを呼び出すだけのクエリが表示されません。私は応答を書いてストアドプロシージャやパラメータを表示するためにウェブサイトコードにアクセスすることはできません。以下のストアドプロシージャからsys_refcursorをどのように表示できるかについてのガイダンスを提供してください。私はヒキガエルを使用していると私はヒキガエルスクリプトランナーを使用するとき、私は何も結果

コード

create or replace procedure dolphin.report_four 
    (p_1 char, 
    P_2 date, 
    p_recordset out sys_refcursor) 
    AS 
    Begin 
    Select 
    column_1, 
    column_2, 
    column_3 

    from dolphin.tank 
    where 
    column_1 = 'BAIT' and 
    column_2 = 'p_2' 

    end report_four; 
+0

この手順は実行できません。おそらくあなたはここで出版のためにそれを編集しました。けっこうだ。しかし、編集したコード**があなたが持っている問題を示していることを確認する必要があります**。実行時の例外を発生させるコードはそれを切り捨てません。 – APC

答えて

0

は、このプロシージャ・コールを記録するためのテーブルを作成し、追加するプロシージャ内でINSERTステートメントを追加表示されませんパラメータが渡された行。その後、COMMIT;を忘れないでください。

セットに手順クエリ:

select /*+ monitor MY_KEY_765746573*/ 
f1, f2, ... 
from ... 

は、プロシージャを呼び出すためのアプリを作ります。その後

その後SQL_IDを置く

select sql_id, sql_fulltext from v$sql where sql_fulltext like '%MY_KEY_'||'765746573%'; 

を実行するには、コールに見つかった:私はSQLモニターレポートと一緒にテーブルのレコードをログに記録を願ってい

select dbms_sqltune.report_sql_monitor('YOUR SQL_ID HERE') from dual; 

あなたの手掛かりを与えます。

0

"ストアドプロシージャは、実行時に行を返しません。"

投稿されたコードはSELECT文を実行しますが、REF CURSORには何も渡しません。これが実際の手順だった場合は、実行しようとするとエラーが発生します。

create or replace procedure dolphin.report_four 
    (p_1 char, 
    P_2 date, 
    p_recordset out sys_refcursor) 
    AS 
Begin 
    open p_recordset for 
     Select 
      column_1, 
      column_2, 
      column_3 
     from dolphin.tank 
     where 
     column_1 = 'BAIT' and 
     column_2 = 'p_2'; 
end report_four; 

REFを開く:それはこのような状況は、あなたの実際のコードを反映したものであるが、それはこのような何かをするべきかどうかを伝えるのは難しいですので、おそらくあなたはStackOverflowの上で出版物のソースを編集するBISHを作りましたCURSORは、このパラメーターを照会結果セットと関連付けます。

+0

お返事ありがとうございます。あなたは正しい、私はそれをより簡単にするためにコードを編集した、私はそれが負の効果を持っていたと思う。問題はcolumn_2 = 'p_2'のwhere句にあります。私はどこの句が問題を特定するのかを知る方法を見つけようとしていました。私はp_2を使ってinsert文を実行しましたが、パラメータ値は問題ありません。 REF CURSORを提供していただきありがとうございます。私はそれがクエリそのものだと思った。 – bosco0102

関連する問題