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 閱讀(404) 評論(0)  編輯  收藏 所屬分類: oracle

          主站蜘蛛池模板: 鄂州市| 武山县| 日喀则市| 洞头县| 苗栗市| 招远市| 南江县| 隆化县| 南康市| 大新县| 合阳县| 大竹县| 衡山县| 贡嘎县| 甘孜县| 徐闻县| 浦城县| 滨海县| 唐海县| 太仓市| 神木县| 会同县| 清苑县| 西和县| 莱州市| 革吉县| 肇州县| 沙坪坝区| 桦甸市| 罗江县| 辛集市| 平舆县| 韩城市| 稷山县| 淳安县| 南京市| 丽水市| 新沂市| 漠河县| 平顺县| 五大连池市|