隨筆-60  評論-138  文章-1  trackbacks-0

          今天看見自己前兩年前寫的代碼,覺得自己當時技術真的很垃圾,現在想想都想笑,呵呵。拿出來給大家看一下,希望大家別介意。如果大家覺得有用盡可拿去用。
          --數據庫建表語句
          create table poi_view(
                lsid number(38),
                lsid_ext varchar2(15),
                name varchar2(128),
                popname varchar2(128),
                longitude number(38),
                latitude number(38),
                tel varchar2(100),
                address varchar2(258),
                postcode varchar2(6),
                claid varchar2(4),
                disid number(38),
                datafrom varchar2(32),
                state varchar2(32),
                url varchar2(512),
                descn varchar2(2000),
                city varchar2(64),
                photo_url varchar2(4000),
                rank number(38),
                cityid varchar2(32)
              );
               
          --拼接字符串的函數    

          create or replace function str_list( str_in in varchar2)--分類字段
            return varchar2
          is
                str_list  varchar2(4000) default null;--連接后字符串
                str  varchar2(20) default null;--連接符號
          begin
                for x in ( select photo_url.photourl from photo_url where photo_url.lsid = str_in) loop
                    str_list := str_list || str || to_char(x.photourl);
                    str := ', ';
                end loop;
                return str_list;
          end;


          create or replace procedure poidata
            as
             cursor c1 is
             --復雜查詢
               select poi.lsid,poi.lsid_ext,poi.name,poi.popname,poi.longitude,
                 poi.latitude,poi.tel,
                 poi.address,poi.postcode,poi.claid,poi.disid,
                 datafrom_category.name as datafrom,
                 state_category.name as state,
                 poi_ext_search.url,poi_ext_search.descn,
                 floor(poi_ext_rank.rankbaidu/1000)+2000000*cla_type.rank as rank,
                city_category.name as city,city_category.disid as cityid
               from
          poi,poi_ext_search,cla_type,poi_ext_rank,city_category,dis_type,state_category,datafrom_category
               where poi.lsid=poi_ext_search.lsid(+)
                and poi.claid=cla_type.claid(+)
                and poi.datafrom=datafrom_category.id(+)
                and poi_ext_search.stat=state_category.id(+)
                and poi.lsid=poi_ext_rank.lsid(+)
                and poi.disid=dis_type.disid(+)
                and dis_type.city_id=city_category.id(+)
                and poi.flag='1';
                --variable
              v_rank  number(38);
              v_phurl varchar2(4000);
              v_lsid number(38);
              v_lsid_ext varchar2(15);
              v_name varchar2(128);
              v_popname varchar2(128);
              v_longitude number(38);
              v_tel varchar2(100);
              v_address varchar2(258);
              v_postcode varchar2(6);
              v_claid varchar2(4);
              v_disid number(38);
              v_d_cname varchar2(32);
              v_s_name varchar2(200);
              v_url varchar2(512);
              v_descn varchar2(2000);
              v_city varchar2(64);
              v_latitude number(38);
              v_cityid varchar2(32);
              v_c2 number(20);

             begin
             delete  from poi_view;
             commit;
             open c1;
             loop fetch c1 into
               v_lsid ,v_lsid_ext,v_name ,v_popname ,v_longitude ,v_latitude,
                   v_tel ,v_address ,v_postcode ,v_claid ,v_disid ,v_d_cname ,
                   v_s_name, v_url ,v_descn ,v_rank,v_city,v_cityid ;
                exit when c1%notfound;     
              insert into poi_view (lsid,lsid_ext,name ,popname ,longitude ,latitude ,tel ,
                address ,postcode ,claid ,disid ,datafrom ,state ,url,descn ,city ,photo_url,rank,cityid)values
                 (v_lsid ,v_lsid_ext,v_name ,v_popname ,v_longitude ,v_latitude,
                   v_tel ,v_address ,v_postcode ,v_claid ,v_disid ,v_d_cname ,v_s_name, v_url ,v_descn ,v_city,str_list(v_lsid),v_rank,v_cityid);
             commit;
           
           end loop;

           close c1;
          end poidata;

          posted on 2009-05-24 03:42 張氏兄弟 閱讀(1806) 評論(5)  編輯  收藏 所屬分類: oracle

          評論:
          # re: oracle pl/sql程序 2009-05-24 13:30 | zzyuuu
          您能不能把這些代碼簡化下,再您看來可以的。
          謝謝.  回復  更多評論
            
          # re: oracle pl/sql程序 2009-05-24 23:14 | fdsf
          感覺個人的技術還是有點不太夠,后面的函數之類的東西就有點看不懂了。。。。  回復  更多評論
            
          # re: oracle pl/sql程序 2009-05-24 23:26 | redrain
          呵呵,兩年前我的技術就是這樣,其實你仔細看看就懂了,主要變量太多了,看著有點暈。好好里理頭緒就懂了@fdsf
            回復  更多評論
            
          # re: oracle pl/sql程序 2009-05-25 22:18 | 無量字幕
          hehe...  回復  更多評論
            
          # re: oracle pl/sql程序 2009-05-26 09:06 | ooxx
          哪里不好,博主也要廣而告之一下嘛。。  回復  更多評論
            

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 吉林市| 仙桃市| 井陉县| 石屏县| 岳阳县| 岳西县| 西贡区| 民权县| 堆龙德庆县| 宝山区| 上犹县| 浦北县| 来安县| 平武县| 靖西县| 新丰县| 苗栗县| 清镇市| 南川市| 舞钢市| 兴山县| 宿迁市| 海淀区| 赞皇县| 红河县| 蕲春县| 兴隆县| 布尔津县| 金沙县| 桐乡市| 黄平县| 德兴市| 隆德县| 龙岩市| 祁连县| 呼伦贝尔市| 湟中县| 西贡区| 平顺县| 新邵县| 临桂县|