我是从SQL Server转过来的,以前要实现根据条件对某个表进行操作的时候,在SQL Server2000中用一个游标就可以了,但现在换了Oracle,我就不会了我已经做到了对某一个订单的处理,写的是一个存储过程,参数为订单号和财会月份:
Proc_CalculateOrderSpec(i_OrderID in varchar,i_Period in varchar)--自己有SQL 的基础,然后根据SQL Server2000的思想写的
--处理的是一个订单该财会月份的情况
现在要实现:1.根据财会月份对所有的订单都进行处理,Procedure/Package该怎样写?参数是财会月份(i_Period)
2.根据财会月份和代理商对所有符合条件的订单进行处理,Procedure/Package该怎样写?参数是财会月份(i_Period)和代理商(i_AgentID)
Create table OrderSpec(OrderID varchar,PeriodID varchar,AgentID varchar,Type varchar2(1),Quantity int,....)
Proc_CalculateOrderSpec(i_OrderID in varchar,i_Period in varchar)--自己有SQL 的基础,然后根据SQL Server2000的思想写的
--处理的是一个订单该财会月份的情况
现在要实现:1.根据财会月份对所有的订单都进行处理,Procedure/Package该怎样写?参数是财会月份(i_Period)
2.根据财会月份和代理商对所有符合条件的订单进行处理,Procedure/Package该怎样写?参数是财会月份(i_Period)和代理商(i_AgentID)
Create table OrderSpec(OrderID varchar,PeriodID varchar,AgentID varchar,Type varchar2(1),Quantity int,....)
游标用法:
首先定义游标
cursor cc is select * from tab1 where....;
c1 cc%rowtype;
在begin..end段中使用游标
open cc;
loop
fetch cc into c1;
exit when cc%notfound;
...
end loop;
close cc;
等等,也可以使用for游标循环。
May this can help u!