Delphi および Oracle PL/SQL ストアド プロシージャに基づくレガシー アプリケーションがいくつかあります。これらのプロシージャの一部は、パラメータとして PL/SQL レコードを取ります。
create or replace package pck_search is
type SearchParamsRecType is record(
search_id pls_integer,
search_database pls_integer,
search_mode pls_integer,
result_mode pls_integer,
wild_card pls_integer);
procedure PerformQuickSearch(p_cursor in out sys_refcursor,
p_parameter in SearchParamsRecType);
end pck_search;
Web ベースのクライアント (ASP.Net MVC4) を追加したいと考えていますが、この種のストアド プロシージャでいくつかの問題に遭遇しました。Visual Studio 2012 でサーバー エクスプローラーを使用してストアド プロシージャをインポートしようとすると、次のエラー メッセージが表示されます。
The function 'PCK_SEARCH.PERFORMQUICKSEARCH' has a parameter
'P_PARAMETER' at parameter index 0 that has a data type 'pl/sql record'
which is currently not supported for the target .NET Framework version.
The function was excluded.
エラー メッセージをグーグルで調べたところ、2010年からのヒットは 1 つしか返されませんでした。そのときの答えは、「これは不可能です」でした。
したがって、私の質問は次のようになります。
- エンティティ フレームワークを使用して、レコード タイプをパラメーターとして受け取る Oracle PL/SQL ストアド プロシージャをインポートすることは可能ですか?
- この種のストアド プロシージャを処理できる Entity Framework の代替手段はありますか?