为了在oracle存储过程中操纵字段数量达到几十上百个的资料表,又不想每个字段都管,那么可巧用游标和%rowtype来只该操纵我关注的字段:
procedure test_cur is
m_salelog_no varchar2(32); -- 使用静态指针,但是可以带变量,实现延迟绑定
cursor c_hz is
select a.* from sd_salelog a where a.salelog_no like m_salelog_no||'%';
r_hz c_hz%rowtype; -- 使用静态指针,可以%rowtype属性来定义行对象,方便接收指针取得数据
begin
m_salelog_no:='SS19011000533';
open c_hz; -- 取数据
loop
fetch c_hz into r_hz;
exit when c_hz%notfound;
dbms_output.put_line(r_hz.salelog_no); -- SS19011000533
r_hz.salelog_no := 'change_r '||r_hz.salelog_no;
dbms_output.put_line(r_hz.salelog_no); -- change_r SS19011000533
end loop;
end test_cur;