我在 Oracle 12c 上有这个包代码
CREATE OR REPLACE PACKAGE Support_Data_Types AS
TYPE ttDate IS TABLE OF DATE
END Support_Data_Types;
PROCEDURE GetData
(
tabDates IN SUPPORT_DATA_TYPES.TTDATE,
)
AS
BEGIN
SELECT count(*) INTO n FROM table(tabDates);
END GetData;
Run Code Online (Sandbox Code Playgroud)
如果我从代码中调用它,PL/SQL它就可以工作
declare
dates SUPPORT_DATA_TYPES.TTDATE;
begin
dates(1) := To_DATE('12/31/2005','MM/DD/YYYY');
dates(2) := To_DATE('03/31/2006','MM/DD/YYYY');
dates(3) := To_DATE('06/30/2006','MM/DD/YYYY');
dates(4) := To_DATE('09/30/2006','MM/DD/YYYY');
MyPackage.GETVALUE(dates);
end;
Run Code Online (Sandbox Code Playgroud)
但是如果我从 ODP.NET 调用它,则会收到错误消息SELECT count(*) INTO n FROM table(tabDates);
ORA-21700: 对象不存在或已标记为删除
我的.NET 代码
Public Function GetValue(dates As IEnumerable(Of Date))
Using connection As IDbConnection = …Run Code Online (Sandbox Code Playgroud)