W obiektowym PL/SQL mogę dodawać procedury członkowskie i funkcje do typów. Przykładem są tu:Wywołaj oparte na obiektach Oracle procedury PL/SQL od JDBC
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;
Od: http://www.adp-gmbh.ch/ora/plsql/oo/member.html
w PL/SQL, mogę wtedy zadzwonić do tych procedur członków/funkcje, takie jak ten:
declare
x foo_type;
begin
x := foo_type(5);
x.proc(10);
dbms_output.put_line(x.func(2));
end;
Jak mogę to zrobić z Kalendarium JDBC w CallableStatement? Nie mogę tego łatwo znaleźć w dokumentacji.
UWAGA: Jest to jedna z możliwości, inline konstruktora typu:
CallableStatement call = c.prepareCall(
" { ? = call foo_type(5).func(2) } ");
Ale co szukam jest mniej więcej tak (za pomocą java.sql.SQLData
jako parametr):
CallableStatement call = c.prepareCall(
" { ? = call ?.func(2) } ");
Również funkcje składowe, procedury mogą modyfikować obiekt. Jak mogę odzyskać zmodyfikowany obiekt w Javie?
jest podstawą Twojego pytania naprawdę "Jak wywołać funkcję członka"? A może raczej "Jak przekazać obiekt jako parametr"? – Codo
@Codo: Rdzeniem jest odzyskiwanie wyników funkcji członków (przykładowa odpowiedź udzielona przez Vincenta Malgrat) oraz sposób pobierania potencjalnie zmodyfikowanego obiektu. –