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

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

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

    飛艷小屋

    程序--人生--哲學___________________歡迎艷兒的加入

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

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


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

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

      <detail>
      <ID>c4</ID>
      <ParentID>p2</ParentID>
      <productname>產品4</productname>
      </detail>
       <!--明細表結束 -->
    <!--第二位銷售員銷售明細結束-->
    </data>


    答案:
    --銷售明細xml生成存儲過程

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

    begin

    --數據庫登陸
    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)
    --人員信息游標創建
    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,銷售明細表 b
                     where
                            b.id = a.parentid
                            order by a.id '
    EXEC (@tempSQL)

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

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

    --打開游標
    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;
                    --明細xml生成               
                    SELECT '<detail>'
                           '<ID>'+CUR_COUNID.did+'</ID>'
                           '<ParentID>'+CUR_COUNID.id+'</ParentID>'
                           '<productname>'+CUR_COUNID.productname+'</productname>'
                           '</detail>';
                    INSERT INTO ##tb
                    --保存當前記錄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

            --刪除鏈接服務器  
            exec   sp_dropserver   'srv_lnk','droplogins'
    end


     

    posted on 2007-04-30 09:22 天外飛仙 閱讀(1101) 評論(0)  編輯  收藏 所屬分類: Oracle
    主站蜘蛛池模板: 国产精品亚洲精品日韩已方| 亚洲国产精品无码久久久蜜芽| 黄色大片免费网站| 亚洲精品国产精品乱码不99 | 一个人看的免费观看日本视频www 一个人看的免费视频www在线高清动漫 | 黄色a级免费网站| 亚洲AV无码精品无码麻豆| 精品香蕉在线观看免费| 国产精品日本亚洲777| 人人狠狠综合久久亚洲88| 青春禁区视频在线观看直播免费| 免费无码AV一区二区| 日韩免费高清视频网站| 国产99久久久国产精免费| 久久精品国产亚洲AV无码娇色| 成年女人毛片免费播放视频m| 亚洲春色在线观看| 免费播放特黄特色毛片| 99久久99久久免费精品小说 | 一级午夜a毛片免费视频| 亚洲精品在线不卡| 欧洲一级毛片免费| 二级毛片免费观看全程| 亚洲va成无码人在线观看| 最新中文字幕电影免费观看| 久久免费观看视频| 亚洲JIZZJIZZ妇女| 国产jizzjizz视频全部免费| 免费毛片毛片网址| 亚洲三级视频在线观看| 亚洲中文字幕在线观看| 一级毛片免费观看| 精品一区二区三区无码免费直播| 久久亚洲日韩精品一区二区三区| 国产成人免费ā片在线观看| selaoban在线视频免费精品| 亚洲va久久久久| 久久久久亚洲精品日久生情 | 亚洲中文字幕伊人久久无码| 毛色毛片免费观看| 99久久精品国产免费|