2009-06-04 13 views
9

Oracleデータベースを使用してASP.NETプロジェクトを作成しています。私たちはTOADを使用してストアドプロシージャを追加/管理しています。一般的にTOADとOracleが好きです。 SQL Serverの「exec [SP_NAME] Param1、Param2、ParamN」の構文など、Oracle Stored Procをテストする簡単な方法を見つけることが難しいと感じています。Oracleストアド・プロシージャをテストする最も簡単な方法

すべてのストアドプロシージャはRef Cursorを出力します。ここに格納されたProcの例です:

 
CREATE OR REPLACE PROCEDURE APP_DB1.GET_JOB 
(
    p_JOB_ID IN JOB.JOB_ID%type, 
    outCursor OUT MYGEN.sqlcur 
) 
IS 
BEGIN 
    OPEN outCursor FOR 
    SELECT * 
    FROM JOB 
    WHERE JOB_ID = p_JOB_ID; 
END GET_JOB; 
/

何か提案がありますか?

答えて

13

エディタ内のTOADのグリッドに表示するために、ストアドプロシージャを呼び出すバインド変数があり、参照カーソル出力のスクリプトが必要です窓。

DECLARE 
type result_set is ref cursor; 
BEGIN 
APP_DB1.GET_JOB(1, :result_set); 
END; 

あなたは、このヒキガエルを実行して「バインド」にプロンプ​​トが表示されます:result_setは、ちょうどタイプのリストから参照カーソルを選択し、その結果をグリッドに表示されます。そのトリックは、自分自身をストアドプロシージャを呼び出す 'クライアント'と考えることで、結果を格納するために独自の参照カーソルが必要です。

+0

私は一行の声明を望んでいましたが、私が見た最も簡単な方法でした。ありがとう。 – Josh

+0

このヒントは本当に私を助けました。ありがとう! – NickSuperb

1

あなただけのSPを起動する方法を探している場合、Oracleの方法は次のとおりです。

begin 
    sp_name(....); 
end; 

私はヒキガエルを使用していないが、あなたはSQLウィンドウにこれを置くことができると実行してくださいそれ。 (:RC照会するジョブID、)

SQL>印刷RC

+0

私はrefカーソルを出力に使うことがわかるように質問を更新しました。そのため、上記の例は使用できません。 – Josh

1

sqplusでは、構文

SQL>のvarのrc参照カーソル

SQL> execがAPP_DB1.GET_JOBを使用することができます

それはそれを行う必要があります。最初の行はバインド変数を定義します。

+0

SQL Serverのようにグリッドに結果セットが必要なので、TOADでやる方法を探しています。 – Josh

0

TOADは、Russelのサンプルスクリプトを使用して、結果をグリッドで表示します。スクリプトとして実行します。

variable P_CUR refcursor; 
exec PACK.GETEXECUTION ('9f363e49-88c1-4295-b61e-60812d620d7e', '6', :P_CUR); 
print P_CUR; 

ありがとうございます!

関連する問題