我们有几个基于 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 年的一次点击- 当时的答案是“这是不可能的”。
所以,我的问题归结为:
- 是否可以使用实体框架导入以记录类型作为参数的 Oracle PL/SQL 存储过程?
- 实体框架是否有任何替代方案可以处理这种存储过程?