2011-02-01 12 views
0

実行しますMSSqlServer。これは前方にあるべきであるように見える。は、私がsignitureとOracleのストアドプロシージャを持つOracleのストアドプロシージャ

私はエラーを取得しておいてください。

Invalid Sql Statement 

感謝を!

+0

"sel_contractor" とは何ですか? –

+0

ユーザーストアドプロシージャはありません。請負業者と呼ばれるパッケージの一部。 'contractor.usp_sel_contractors'を実行すると同じ効果があります – kralco626

+0

いいえ、私は" usp_sel_contractor "ではなく" sel_contractor "について質問していました。 –

答えて

3

は、REFカーソル型であり、あなたは、SQL Plusでこれを行うことができます: - 参照カーソル

var rc refcursor 

exec usp_sel_contractors(:rc) 

print rc 
+0

あなたはSQL Plusでこれを行うことができますが、SQLデベロッパーでこれを行う方法はありますか? – kralco626

+1

はい、これもSQL Developerでも動作します - 私はそれを試しました。 「スクリプトを実行」ボタンを使用します。 –

+0

私はしようとしました: 'var rc refcursor exec Contractor.usp_sel_contractors(:rc)rc'を出力し、結果は得られませんでしたが、スクリプト出力の下にあります。 CHAR | CHAR(n [CHAR | BYTE])| VARCHAR2(n [CHAR | BYTE])| NCHAR | NCHAR(n)| NVARCHAR2(n)| CLOB | NCLOB | REFCURSOR | BINARY_FLOAT | BINARY_DOUBLE]] ' – kralco626

1

なぜ特定のエラーメッセージが表示されるのかわかりませんが、明白な問題は、プロシージャにパラメータがあり、パラメータを渡していないことです。それはOUTパラメータなので、プロシージャによって設定される適切な型の変数を渡す必要があります。例えば

:sel_contractorを想定し

DECLARE 
    my_contractors sel_contractor; 
BEGIN 
    usp_sel_contractors(my_contractors); 

    // Do something with the contents of my_contractors here 
END; 
/
+1

ugh。わかりました、ありがとう。これを複雑にするために、Oracleにお任せください。結果を出力したいだけですか?それ、どうやったら出来るの? – kralco626

関連する問題