Допустим, у меня есть:Вызов процедуры члена в Oracle 11g
create type address as object (
line1 varchar2(50),
city varchar2(50),
member procedure insert_address(line1 varchar2, city varchar2)
)
/
create table address_table of address;
create type body address as
member procedure insert_address(line1 varchar2, city varchar2) is
begin
insert into address_table values (line1, city);
commit;
end insert_address;
end;
/
Как я называю insert_address
?
, выполнив следующие действия я получаю invalid number or types of arguments
begin
address.insert_address('123 my road','london');
end;
я могу это сделать, и он работает, но, кажется, как плохая идея:
declare
v_address address := new address(null,null);
begin
v_address.insert_address('123 my road','london');
end;
Благодарности
Что вы, кажется, не имеет особого смысла. Если вы не хотите, чтобы ваш тип вел себя объектно-ориентированным, лучше создайте простой пакет. Мне кажется, что вы собираетесь перенести концепции, например, с Java или C# непосредственно на PL/SQL. –