⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 新建 文本文档 (2).txt

📁 SQL Server2000提供了OpenXML特性,我们可以很方便的用OpenXML特性来代替传统的行集结果
💻 TXT
📖 第 1 页 / 共 2 页
字号:

 复制代码 
FF FE 3C 00 3F 00 78 00-6D 00 6C 00 20 00 76 00  *..<.?.x.m.l. .v.*
65 00 72 00 73 00 69 00-6F 00 6E 00 3D 00 22 00  *e.r.s.i.o.n.=.".*
31 00 2E 00 30 00 22 00-20 00 65 00 6E 00 63 00  *1...0.". .e.n.c.*
6F 00 64 00 69 00 6E 00-67 00 3D 00 22 00 75 00  *o.d.i.n.g.=.".u.*
74 00 66 00 2D 00 31 00-36 00 22 00 3F 00 3E 00  *t.f.-.1.6.".?.>.*
3C 00 72 00 6F 00 6F 00-74 00 3E 00 A2 4F 9C 76  *<.r.o.o.t.>..O.v*
0C FA 77 E4 80 00 89 00-00 06 90 06 91 2E 9B 2E  *..w.............*
99 34 A2 34 86 00 83 02-92 20 7F 02 4E C5 E4 A3  *.4.4..... ..N...*
34 B2 B7 B3 B7 FE F8 FF-F8 00 3C 00 2F 00 72 00  *4.........<./.r.*
6F 00 6F 00 74 00 3E 00-00 00 00 00 7A EF BB BF  *o.o.t.>.....z...*
3C 3F 78 6D 6C 20 76 65-72 73 69 6F 6E 3D 22 31  *<?xml version="1*
2E 30 22 20 65 6E 63 6F-64 69 6E 67 3D 22 75 74  *.0" encoding="ut*
66 2D 38 22 3F 3E 3C 72-6F 6F 74 3E E4 BE A2 E7  *f-8"?><root>....*
9A 9C EF A8 8C EE 91 B7-C2 80 C2 89 D8 80 DA 90  *................*
E2 BA 91 E2 BA 9B E3 92-99 E3 92 A2 C2 86 CA 83  *................*
E2 82 92 C9 BF EC 95 8E-EA 8F A4 EB 88 B4 EB 8E  *................*
B7 EF BA B7 EF BF B8 C3-B8 3C 2F 72 6F 6F 74 3E  *.........</root>*
00 00 00 00 7A                                   *....z* 

示例表
大容量导入或导出 XML 文档时,应当使用在任何文档中都不可能出现的字段终止符;例如,在连续四个 Null (\0) 后紧跟字母 z:\0\0\0\0z。 

此示例说明如何为 xTable 示例表使用此字段终止符。若要创建此示例表,请使用下列 CREATE TABLE 语句:

 复制代码 
USE tempdb
CREATE TABLE xTable (xCol xml);
GO 

示例格式化文件
必须在格式化文件中指定字段终止符。示例 D 使用了一个名为 Xmltable.fmt 的非 XML 格式化文件,该文件包含以下内容: 

 复制代码 
9.0
1
1       SQLBINARY     0       0       "\0\0\0\0z"    1     xCol         "" 

可以使用此格式化文件并通过 bcp 命令、BULK INSERT 语句或 INSERT ... SELECT * FROM OPENROWSET(BULK...) 语句将 XML 文档大容量导入到 xTable 表中。 

示例 D
此示例在 BULK INSERT 语句中使用 Xmltable.fmt 格式化文件来导入 XML 数据文件 Xmltable.dat 中的内容。

 复制代码 
BULK INSERT xTable 
FROM 'C:\Xmltable.dat'
WITH (FORMATFILE = 'C:\Xmltable.fmt');
GO 

[返回页首] 

E. 大容量导出 XML 数据
下面的示例使用 bcp 命令和同一个 XML 格式化文件从上一示例所创建的表中大容量导出 XML 数据。在下面的 bcp 命令中,<server_name> 和 <instance_name> 代表必须使用相应的值替换的占位符:

 复制代码 
bcp bulktest..xTable out a-wn.out -N -T -S<server_name>\<instance_name> 

注意: 
在数据库中持久保留 XML 数据时,SQL Server 不保存 XML 编码。因此,在导出 XML 数据时,XML 字段的原始编码将不可用。导出 XML 数据时,SQL Server 使用 UTF-16 编码。  








*********************     导入   xml 文件   
    
  DECLARE   @idoc   int   
  DECLARE   @doc   varchar(1000)   
  --sample   XML   document   
  SET   @doc   ='   
  <root>   
      <Customer   cid=   "C1"   name="Janine"   city="Issaquah">   
              <Order   oid="O1"   date="1/20/1996"   amount="3.5"   />   
              <Order   oid="O2"   date="4/30/1997"   amount="13.4">Customer   was   very   satisfied   
              </Order>   
        </Customer>   
        <Customer   cid="C2"   name="Ursula"   city="Oelde"   >   
              <Order   oid="O3"   date="7/14/1999"   amount="100"   note="Wrap   it   blue     
                            white   red">   
                          <Urgency>Important</Urgency>   
                          Happy   Customer.   
              </Order>   
              <Order   oid="O4"   date="1/20/1996"   amount="10000"/>   
        </Customer>   
  </root>   
  '   
  --   Create   an   internal   representation   of   the   XML   document.   
  EXEC   sp_xml_preparedocument   @idoc   OUTPUT,   @doc   
    
  --   Execute   a   SELECT   statement   using   OPENXML   rowset   provider.   
  SELECT   *   
  FROM   OPENXML   (@idoc,   '/root/Customer/Order',   1)   
              WITH   (oid           char(5),     
                          amount     float,     
                          comment   ntext   'text()')   
  EXEC   sp_xml_removedocument   @idoc   
  
Top

7 楼w3w(w3w)回复于 2005-06-06 19:48:09 得分 0 那是否有工具直接把XML转换成纯文本呢?
Top

8 楼zjcxc(邹建)回复于 2005-06-08 08:05:35 得分 0 xml是纯文本格式吧?   怎么转呢?
Top

9 楼duanduan1122(俺村俺帅!!!)回复于 2005-06-09 08:52:49 得分 20检索和编写   XML   数据   
  可以执行   SQL   查询返回   XML   格式而不是标准行集的结果。可以直接或从存储过程中执行这些查询。若要直接检索结果,请使用   SELECT   语句的   FOR   XML   子句,并在   FOR   XML   子句中指定   XML   模式:RAW、AUTO   或   EXPLICIT。   
    
  例如,下面的   SELECT   语句从   Northwind   数据库的   Customers   和   Orders   表中检索信息。下面的查询在   FOR   XML   子句中指定   AUTO   模式:   
    
  SELECT   Customers.CustomerID,   ContactName,   CompanyName,   
                Orders.CustomerID,   OrderDate   
  FROM   Customers,   Orders   
  WHERE   Customers.CustomerID   =   Orders.CustomerID     
  AND   (Customers.CustomerID   =   N'ALFKI'     
          OR   Customers.CustomerID   =   N'XYZAA')   
  ORDER   BY   Customers.CustomerID   
  FOR   XML   AUTO   
    
  尽管可用   FOR   XML   子句检索   XML   文档形式的数据,但也可用   Transact-SQL   OPENXML   函数插入以   XML   文档形式表示的数据。OPENXML   是类似于表或视图的行集提供程序,用于提供内存中   XML   文档上的行集。OPENXML   通过提供   XML   文档内部表示法的行集视图,允许访问   XML   数据,就好象它是关系行集一样。行集中的记录可以存储在数据库表中。OPENXML   可以在   SELECT   和   SELECT   INTO   语句中使用,在这些语句中可以指定源表或视图。   
    
  下例说明   OPENXML   在   INSERT   和   SELECT   语句中的用法。示例   XML   文档由   <Customers>   和   <Orders>   元素组成。首先,sp_xml_preparedocument   存储过程分析   XML   文档。分析后的文档是   XML   文档各节点(元素、特性、文本、注释等)的树型表示法。然后   OPENXML   引用这个经过分析的   XML   文档并提供该   XML   文档的全部或部分内容的行集视图。使用   OPENXML   的   INSERT   语句从而可将数据从这样的行集插入数据库表。可用几个   OPENXML   调用提供   XML   文档各部分的行集视图并对它们进行处理,例如,将它们插入不同的表中(该过程也称为"将   XML   拆分到表中")。在下例中,一个   XML   文档被这样拆分:使用两个   INSERT   语句将   <Customers>   元素存储在   Customers   表中并将   <Orders>   元素存储在   Orders   表中。     
    
  下例还显示带有   OPENXML   的   SELECT   语句从   XML   文档检索   CustomerID   和   OrderDate。   
    
  DECLARE   @hDoc   int   
  EXEC   sp_xml_preparedocument   @hDoc   OUTPUT,     
              N'<ROOT>   
                    <Customers   CustomerID="XYZAA"   ContactName="Joe"     
                                CompanyName="Company1">   
                          <Orders   CustomerID="XYZAA"     
                                OrderDate="2000-08-25T00:00:00"/>   
                          <Orders   CustomerID="XYZAA"     
                                OrderDate="2000-10-03T00:00:00"/>   
                    </Customers>   
                    <Customers   CustomerID="XYZBB"   ContactName="Steve"   
                                CompanyName="Company2">No   Orders   yet!   
                    </Customers>   
              </ROOT>'   
  --   Use   OPENXML   to   provide   rowset   consisting   of   customer   data.   
  INSERT   Customers     
  SELECT   *     
  FROM   OPENXML(@hDoc,   N'/ROOT/Customers')     
            WITH   Customers   
  --   Use   OPENXML   to   provide   rowset   consisting   of   order   data.   
  INSERT   Orders     
  SELECT   *     
  FROM   OPENXML(@hDoc,   N'//Orders')     
            WITH   Orders   
  --   Using   OPENXML   in   a   SELECT   statement.   
  SELECT   *   FROM   OPENXML(@hDoc,   N'/ROOT/Customers/Orders')   with   (CustomerID   nchar(5)   '../@CustomerID',   OrderDate   datetime)   
  --   Remove   the   internal   representation   of   the   XML   document.   
  EXEC   sp_xml_removedocument   @hDoc   
    











⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -