<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    飛艷小屋

    程序--人生--哲學(xué)___________________歡迎艷兒的加入

    BlogJava 首頁 新隨筆 聯(lián)系 聚合 管理
      52 Posts :: 175 Stories :: 107 Comments :: 0 Trackbacks

    現(xiàn)有主表(銷售人員表),次表(銷售明細(xì)表),請寫一存儲過程把這兩表的數(shù)據(jù)導(dǎo)出指定格式的XML文件(格式如下),要求存儲過程參數(shù)包括:數(shù)據(jù)庫服務(wù)器名、數(shù)據(jù)庫名、數(shù)據(jù)庫用戶名、數(shù)據(jù)庫密碼、導(dǎo)出文件完整路徑。


    <?xml version="1.0" encoding="GBK"?>
    <data version="1.0" >
    <!--第一位銷售員銷售明細(xì)開始-->
      <!--主表開始 -->
      <main>
      <id>p1</id>
      <name>張三</name>  
      </main>
      <!--主表結(jié)束 -->
      <!--明細(xì)表開始 -->
      <detail>
     <ID>c1</ID>
      <ParentID>p1</ParentID>
      <productname>產(chǎn)品1</productname>
      </detail>

      <detail>
      <ID>c2</ID>
      <ParentID>p1</ParentID>
      <productname>產(chǎn)品2</productname>
      </detail>
       <!--明細(xì)表結(jié)束 -->
    <!--第一位銷售員銷售明細(xì)結(jié)束-->
     
    <!--第二位銷售員銷售明細(xì)開始-->
      <!--主表開始 -->
      <main>
      <id>p2</id>
      <name>李四</name>  
      </main>
      <!--主表結(jié)束 -->
      <!--明細(xì)表開始 -->
      <detail>
     <ID>c3</ID>
      <ParentID>p2</ParentID>
      <productname>產(chǎn)品3</productname>
      </detail>

      <detail>
      <ID>c4</ID>
      <ParentID>p2</ParentID>
      <productname>產(chǎn)品4</productname>
      </detail>
       <!--明細(xì)表結(jié)束 -->
    <!--第二位銷售員銷售明細(xì)結(jié)束-->
    </data>


    答案:
    --銷售明細(xì)xml生成存儲過程

    CREATE procedure pageer_rnewlist
    (
     @hostname varchar(50),    --主機(jī)IP
     @dbname varchar(50),      --數(shù)據(jù)庫名
     @username varchar(50),    --用戶名
     @password varchar(50),    --密碼
     @xmlpath varchar(50)      --xml輸出路徑
    )

    begin

    --數(shù)據(jù)庫登陸
    exec sp_addlinkedserver 'srv_lnk','','SQLOLEDB',@hostname
    exec sp_addlinkedsrvlogin 'srv_lnk','false',null,@username,@password

    go
    declare @errorInfo varchar(200)             --錯誤信息

    declare @tempSQL    varchar(1000)
    --人員信息游標(biāo)創(chuàng)建
    set @tempSQL = ' declare idCursor cursor for '+ CHAR(13) + CHAR(10)
    set @tempSQL =  @tempSQL +
                   ' select a.id id,
                            a.name name,
                            b.id did,
                            b.productname pname
                     from 銷售人員表 a,銷售明細(xì)表 b
                     where
                            b.id = a.parentid
                            order by a.id '
    EXEC (@tempSQL)

    --創(chuàng)建全局臨時表
    create table ##tb(re varchar(8000))
    INSERT INTO ##tb

    --插入頭信息
    select '<?xml version="1.0" encoding="GBK"?>
            <data version="1.0" >'
    INSERT INTO ##tb

    --打開游標(biāo)
    OPEN idCursor;
        IF(@@CURSOR_ROWS = 0 )
          BEGIN
            CLOSE idCursor
            DEALLOCATE idCursor
            set @errorInfo = '沒有指定表名或存儲過程名!'
            print @errorInfo
            return
          END 

          declare @id  VARCHAR2(50) = '';

          FETCH NEXT FROM CUR_COUNID INTO CUR_COUNID;
          WHILE  (@@FETCH_STATUS <> -1)
          BEGIN
                    --判斷是否存儲過的id
                    IF CUR_COUNID.id <> @id THEN
                      --主表xml生成
                      SELECT '<main>'
                             '<id>'+CUR_COUNID.id+'</id>'
                             '<name>'+CUR_COUNID.name+'</name>'
                             '</main>';
                      INSERT INTO ##tb
                    ELSE
                    END IF;
                    --明細(xì)xml生成               
                    SELECT '<detail>'
                           '<ID>'+CUR_COUNID.did+'</ID>'
                           '<ParentID>'+CUR_COUNID.id+'</ParentID>'
                           '<productname>'+CUR_COUNID.productname+'</productname>'
                           '</detail>';
                    INSERT INTO ##tb
                    --保存當(dāng)前記錄id
                    @id = CUR_COUNID.id;
            FETCH NEXT FROM CUR_COUNID INTO CUR_COUNID;
            END
            CLOSE idCursor
            DEALLOCATE idCursor

            --生成xml
            exec master..xp_cmdshell 'bcp ##tb out ' + @xmlpath
            drop table ##tb

            --刪除鏈接服務(wù)器  
            exec   sp_dropserver   'srv_lnk','droplogins'
    end


     

    posted on 2007-04-30 09:22 天外飛仙 閱讀(1101) 評論(0)  編輯  收藏 所屬分類: Oracle
    主站蜘蛛池模板: 免费人成在线观看网站| 国产亚洲综合视频| 中文字幕在线免费观看视频| 亚洲成人高清在线| 免费一区二区无码视频在线播放 | 在线观看无码AV网站永久免费| 久久精品国产亚洲AV嫖农村妇女| 日韩成人免费视频| 亚洲成a人片77777kkkk| 成全视频高清免费观看电视剧 | 亚洲av无码成人精品区在线播放| 国产亚洲综合精品一区二区三区| 吃奶摸下高潮60分钟免费视频| 成年网在线观看免费观看网址 | 两个人看的www视频免费完整版| 国产亚洲无线码一区二区 | 成年女人毛片免费观看97| 亚洲精品一卡2卡3卡四卡乱码| 国产精品国产免费无码专区不卡| 黄床大片30分钟免费看| 亚洲无av在线中文字幕| 114级毛片免费观看| 亚洲精品国产av成拍色拍| 免费大片黄手机在线观看| 久久精品免费一区二区三区| 亚洲国产老鸭窝一区二区三区| 2021久久精品免费观看| 男男黄GAY片免费网站WWW| 亚洲精品国产精品乱码不99| 在线观看www日本免费网站| 亚洲色在线无码国产精品不卡| 亚洲免费日韩无码系列| 久久香蕉国产线看免费| 亚洲中文无码亚洲人成影院| 久久精品国产亚洲5555| 69视频免费在线观看| 狠狠热精品免费观看| 亚洲综合综合在线| 亚洲精品无码久久不卡| 国产成人免费在线| 一级女人18片毛片免费视频|