pl/sql script

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

你可能感兴趣的:(pl/sql script)