在plsql中可以使用带有对象的接口吗?
例如,假设我有一堆对象,并希望使用泛型函数按日期对它们进行排序。我可以要下面这样的东西吗?
create or replace interface DateInterface
(
member function get_date return date
)
/
create or replace type TypeA implements DateInterface
(
my_date date,
member function get_date return date
)
/
create or replace type body TypeA is
member function get_date return date is
begin
return my_date;
end;
end;
/
create or replace type dateTable as table of DateInterface;
/
function EarliestDate (dates dateTable) returns date is
l_earliestDate date;
begin
l_earliestDate := dates(1);
for i in dates.first .. dates.last
loop
if l_earliestDate.get_date > dates(i).get_date then
l_earliestDate := dates(i);
end if;
end loop;
return l_earliestDate;
end;我知道我可以让他们继承一个类,但是有没有更灵活的接口可以做到这一点呢?
发布于 2016-06-08 05:05:11
Oracle支持在其过程和函数中使用LANGUAGE子句连接外部源,如Java和C语言。在过程或函数中实现对象的日期排序逻辑,并与其他编程语言进行接口。
有关参考信息,请参阅Oracle's documentation
发布于 2021-03-04 00:25:15
我来晚了,但甲骨文现在在PLSQL中已经有了某种面向对象的支持:https://docs.oracle.com/en/database/oracle/oracle-database/18/adobj/inheritance-in-sql-object-types.html#GUID-A5FE7A3B-7C1C-430A-8095-76AE955119C9
你可以继承它,等等。所以你可以为PLSQL对象类型对象做一个接口,但是它会带来一些问题。例如:存储在表中。请参阅https://oracle-base.com/articles/8i/object-types
https://stackoverflow.com/questions/33090511
复制相似问题