問題の状態
次のように宣言された非常に単純なOracle(11g)ストアドプロシージャがあります。
CREATE OR REPLACE PROCEDURE pr_myproc(L_CURSOR out SYS_REFCURSOR)
is
BEGIN
OPEN L_CURSOR FOR
SELECT * FROM MyTable;
END;
これは正しくコンパイルされます。カーソルには、col1、col2、およびcol3が含まれます。
SSRSには、Oracle11g用のOracleOLEDBプロバイダーを使用する共有データソースがあります。
Provider=OraOLEDB.Oracle.1;Data Source=LIFEDEV
(さらにユーザーの資格情報)。
何がうまくいくか:
- ストアドプロシージャはPL/SQLDeveloperで正しく実行されます
- の「テスト接続」はSSRSで正常に機能します
SELECT * FROM MyTable;
コマンドタイプが「text」のクエリ文字列は、SSRSレポートに正しいフィールドを生成します。- OracleOLEDBプロバイダーではなく.NETOracleプロバイダー
失敗するもの:
コマンドタイプを「ストアドプロシージャ」に変更して「pr_myproc」と入力すると、「OK」をクリックすると、Visual Studio 2005(Service Pack 2)がハング/クラッシュします。
誰かがこれについての知識/経験を持っていますか?
どんな助けでも大歓迎です。ありがとう。
さらに詳しい情報
プロバイダーをOracleOLEDBプロバイダーから.NETOracleプロバイダーに変更しましたが、魔法のように機能します。
これは、Oracleプロバイダーに問題があることを示しているように思われます。
これ以上の考えはありますか?