Sql 对Select语句中的项运行函数
我有一个包含对象的表。我想对每个对象调用一个成员函数,它将改变每个对象上的一些值。问题是我当前的方法没有更改对象,而是似乎创建了新的对象,并且没有将更改保存到表中 我的代码看起来像Sql 对Select语句中的项运行函数,sql,oracle,function,plsql,Sql,Oracle,Function,Plsql,我有一个包含对象的表。我想对每个对象调用一个成员函数,它将改变每个对象上的一些值。问题是我当前的方法没有更改对象,而是似乎创建了新的对象,并且没有将更改保存到表中 我的代码看起来像 declare type row_type is table of my_table%rowtype; my_rows row_type; begin select * bulk collect into my_rows from my_table; for i in my_table.first .
declare
type row_type is table of my_table%rowtype;
my_rows row_type;
begin
select * bulk collect into my_rows from my_table;
for i in my_table.first .. my_table.last loop
my_table(i).stored_class.add_func(1);
end loop;
commit;
end;
使用类似的模式
create table my_table
(
stored_class my_class
);
create type my_class as object
(
my_num number,
member procedure add_func(in_number number)
);
create type my_class body is
member procedure add_func(in_number number) is
begin
my_num := my_num + in_number;
end
end;
非常感谢您的帮助。当您想将对象写回数据库时,必须发出正确的sql命令。Plsql仍然与sql有所不同。Obecj属性只是ram中的变量当您在plsql中使用它们时,它们不是数据库字段。使用包含id或rowid的游标,获取变量,操纵对象,使用rowid和操纵对象更新行。