<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永久无码精品成人| 四虎精品免费永久免费视频| 三上悠亚亚洲一区高清| 99视频免费观看| 亚洲av日韩精品久久久久久a| 中文字幕亚洲一区二区va在线| 91人成网站色www免费下载| 欧美激情综合亚洲一二区| 亚洲国产一成人久久精品| 91在线视频免费91| h视频在线免费观看| 亚洲美女aⅴ久久久91| 亚洲AV蜜桃永久无码精品| 18禁止看的免费污网站| 一边摸一边桶一边脱免费视频 | 成年网站免费入口在线观看| 亚洲视频2020| 免费人成视网站在线观看不卡| 91人成网站色www免费下载| 特级毛片全部免费播放| 亚洲人成免费网站| 国产偷v国产偷v亚洲高清| 午夜男人一级毛片免费| 未满十八18禁止免费无码网站 | 久久国产乱子伦精品免费看| 成人婷婷网色偷偷亚洲男人的天堂| 亚洲AV无码国产精品色午友在线| 日韩人妻无码免费视频一区二区三区| 久久精品乱子伦免费| 直接进入免费看黄的网站| 亚洲一区二区三区无码国产| 国产亚洲综合色就色| 亚洲av无码国产精品色在线看不卡 | 伊在人亚洲香蕉精品区麻豆| 亚洲第一成年免费网站| 一区二区三区在线免费看| fc2成年免费共享视频网站| 亚洲精品又粗又大又爽A片| 亚洲国产精品成人综合久久久| 亚洲成a人片在线观看无码专区|