在面向对象的 PL/SQL 中,我可以向类型添加成员过程和函数。这里给出一个例子:
create type foo_type as object (
foo number,
member procedure proc(p in number),
member function func(p in number) return number
);
create type body foo_type as
member procedure proc(p in number) is begin
foo := p*2;
end proc;
member function func(p in number) return number is begin
return foo/p;
end func;
end;
From: http://www.adp-gmbh.ch/ora/plsql/oo/member.html
在 PL/SQL 中,我可以像这样调用这些成员过程/函数:
declare
x foo_type;
begin
x := foo_type(5);
x.proc(10);
dbms_output.put_line(x.func(2));
end;
我如何使用 JDBC 的 CallableStatement 来做到这一点?我似乎无法在文档中轻松找到这一点。
NOTE:这是一种可能性,内联类型构造函数:
CallableStatement call = c.prepareCall(
" { ? = call foo_type(5).func(2) } ");
但我正在寻找的是这样的东西(使用java.sql.SQLData
作为参数):
CallableStatement call = c.prepareCall(
" { ? = call ?.func(2) } ");
此外,成员函数、过程可以修改对象。如何在 Java 中取回修改后的对象?