waterye

pl/sql script

将select出来的数据update到其他table, 使用JDBC的话几行代码就搞定, 但要经过不算烦人的compile, 为了在没有Java的环境使用(安装新版本的Oracle要JVM)

用pl/sql script是更简单方法,从在线文档copy个sample过来, 改一改就能用

DECLARE
    
CURSOR c1 IS SELECT order_item_no, unit_price FROM sale_order_item;
    TYPE ResultSet 
IS TABLE OF c1%ROWTYPE;
    rs ResultSet; 
BEGIN
    
    
select i.order_item_no, goods.unit_price BULK COLLECT into rs
  
from sale_order o, sale_order_item i, goods
 
where o.order_no = i.order_no
   
and i.goods_no = goods.goods_no
   
and trunc(o.order_time, 'month'>= to_date('2005-6''yyyy-mm');

    
IF rs.count > 0 THEN 
        
FOR i IN rs.FIRST .. rs.LAST LOOP
            
update sale_order_item set unit_price = rs(i).unit_price where order_item_no = rs(i).order_item_no;
        
END LOOP; 
    
END IF;
    
    
commit;
        
END;

再在sqlplus运行
sqlplus /nolog
conn 
user/passoword@sid
@update.sql

posted on 2005-09-03 16:26 waterye 阅读(393) 评论(0)  编辑  收藏 所属分类: oracle


只有注册用户登录后才能发表评论。


网站导航: