sql语句SELECT * FROM OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Text;HDR=YES;DATABASE=d:\temp2\rtetrade2\iislog\2009-11-18',Filtered_ex091116#txt)Filtered_ex091116.txt的内容:#Software: Microsoft Internet Information Services 6.0
#Version: 1.0
#Date: 2009-11-16 00:03:32
#Fields: date time c-ip cs-username cs-method cs-uri-stem cs-uri-query sc-status sc-bytes cs(User-Agent) cs(Cookie) cs(Referer)
2009-11-16 06:03:02 76.230.124.141 - POST /PortAnalyzer/Port.aspx CustId=&CLogin=&CType= 200 63690 Mozilla/4.0+(compatible;+MSIE+8.0;+Windows+NT+5.1;+Trident/4.0;+.NET+CLR+2.0.50727;+.NET+CLR+3.0.4506.2152;+.NET+CLR+3.5.30729) 002125835138131492 https://us.etrade.com/e/t/mrnstar/portfolioanalyzer
2009-11-16 06:03:02 76.230.124.141 - GET /Webgraphs/WebPie.aspx type=3d&width=125&height=82&values=41.53|35.17|8.48|13.54|1.29|0.00&colors=61|120|152^175|196|188^127|166|184^197|169|1^51|51|51^175|198|106 200 2096 Mozilla/4.0+(compatible;+MSIE+8.0;+Windows+NT+5.1;+Trident/4.0;+.NET+CLR+2.0.50727;+.NET+CLR+3.0.4506.2152;+.NET+CLR+3.5.30729) 002125835138131492 https://etrade.morningstar.com/PortAnalyzer/Port.aspx
2009-11-16 06:03:29 172.28.84.50 - GET /PortAnalyzer/ETFProcess.html CustId=&CLogin=&CType= 200 10927 Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.1) 002125835140986183 -
2009-11-16 06:04:20 76.230.124.141 - GET /PortAnalyzer/Premium/StockStyle.aspx CustId=&CLogin=&CType= 200 43032 Mozilla/4.0+(compatible;+MSIE+8.0;+Windows+NT+5.1;+Trident/4.0;+.NET+CLR+2.0.50727;+.NET+CLR+3.0.4506.2152;+.NET+CLR+3.5.30729) 002125835138131492 https://etrade.morningstar.com/PortAnalyzer/Port.aspx
2009-11-16 06:04:22 76.230.124.141 - GET /Webgraphs/P_HBar.aspx width=210&height=16&stock=23.98&index=0 200 548 Mozilla/4.0+(compatible;+MSIE+8.0;+Windows+NT+5.1;+Trident/4.0;+.NET+CLR+2.0.50727;+.NET+CLR+3.0.4506.2152;+.NET+CLR+3.5.30729) 002125835138131492 https://etrade.morningstar.com/PortAnalyzer/Premium/StockStyle.aspx
2009-11-16 06:04:22 76.230.124.141 - GET /Webgraphs/P_HBar.aspx width=210&height=16&stock=27.15&index=0 200 549 Mozilla/4.0+(compatible;+MSIE+8.0;+Windows+NT+5.1;+Trident/4.0;+.NET+CLR+2.0.50727;+.NET+CLR+3.0.4506.2152;+.NET+CLR+3.5.30729) 002125835138131492 https://etrade.morningstar.com/PortAnalyzer/Premium/StockStyle.aspx
2009-11-16 06:04:22 76.230.124.141 - GET /Webgraphs/P_HBar.aspx width=210&height=16&stock=6.68&index=0 200 538 Mozilla/4.0+(compatible;+MSIE+8.0;+Windows+NT+5.1;+Trident/4.0;+.NET+CLR+2.0.50727;+.NET+CLR+3.0.4506.2152;+.NET+CLR+3.5.30729) 002125835138131492 https://etrade.morningstar.com/PortAnalyzer/Premium/StockStyle.aspx
同一路径下schema.ini内容:[Filtered_ex091116.txt]
Col4=cs-uri-stem char width 199
[Filtered_ex091116.txt]
Col5=cs-uri-query char width 199
[Filtered_ex091116.txt]
Col6=cs-username char width 49
[Filtered_ex091116.txt]
Col7=c-ip char width 49
[Filtered_ex091116.txt]
Col8=cs(User-Agent) char width 99
[Filtered_ex091116.txt]
Col9=cs(Referer) char width 199
[Filtered_ex091116.txt]
Col10=sc-status integer
[Filtered_ex091116.txt]
Col11=sc-bytes integer
结果schema.ini完全没起作用,输出结果是:#Software: Microsoft Internet Information Services 6#0
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
#Version: 1.0
#Date: 2009-11-16 00:03:32
#Fields: date time c-ip cs-username cs-method cs-uri-stem cs-uri-query sc-status sc-bytes cs(User-Agent) cs(Cookie) cs(Referer)
2009-11-16 06:03:02 76.230.124.141 - POST /PortAnalyzer/Port.aspx CustId=&CLogin=&CType= 200 63690 Mozilla/4.0+(compatible;+MSIE+8.0;+Windows+NT+5.1;+Trident/4.0;+.NET+CLR+2.0.50727;+.NET+CLR+3.0.4506.2152;+.NET+CLR+3.5.30729) 002125835138131492 https://us
2009-11-16 06:03:02 76.230.124.141 - GET /Webgraphs/WebPie.aspx type=3d&width=125&height=82&values=41.53|35.17|8.48|13.54|1.29|0.00&colors=61|120|152^175|196|188^127|166|184^197|169|1^51|51|51^175|198|106 200 2096 Mozilla/4.0+(compatible;+MSIE+8.0;+Windows
2009-11-16 06:03:29 172.28.84.50 - GET /PortAnalyzer/ETFProcess.html CustId=&CLogin=&CType= 200 10927 Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.1) 002125835140986183 -
2009-11-16 06:04:20 76.230.124.141 - GET /PortAnalyzer/Premium/StockStyle.aspx CustId=&CLogin=&CType= 200 43032 Mozilla/4.0+(compatible;+MSIE+8.0;+Windows+NT+5.1;+Trident/4.0;+.NET+CLR+2.0.50727;+.NET+CLR+3.0.4506.2152;+.NET+CLR+3.5.30729) 0021258351381314
2009-11-16 06:04:22 76.230.124.141 - GET /Webgraphs/P_HBar.aspx width=210&height=16&stock=23.98&index=0 200 548 Mozilla/4.0+(compatible;+MSIE+8.0;+Windows+NT+5.1;+Trident/4.0;+.NET+CLR+2.0.50727;+.NET+CLR+3.0.4506.2152;+.NET+CLR+3.5.30729) 0021258351381314
2009-11-16 06:04:22 76.230.124.141 - GET /Webgraphs/P_HBar.aspx width=210&height=16&stock=27.15&index=0 200 549 Mozilla/4.0+(compatible;+MSIE+8.0;+Windows+NT+5.1;+Trident/4.0;+.NET+CLR+2.0.50727;+.NET+CLR+3.0.4506.2152;+.NET+CLR+3.5.30729) 0021258351381314
2009-11-16 06:04:22 76.230.124.141 - GET /Webgraphs/P_HBar.aspx width=210&height=16&stock=6.68&index=0 200 538 Mozilla/4.0+(compatible;+MSIE+8.0;+Windows+NT+5.1;+Trident/4.0;+.NET+CLR+2.0.50727;+.NET+CLR+3.0.4506.2152;+.NET+CLR+3.5.30729) 00212583513813149
2009-11-16 06:04:22 76.230.124.141 - GET /Webgraphs/P_HBar.aspx width=210&height=16&stock=23.57&index=0 200 548 Mozilla/4.0+(compatible;+MSIE+8.0;+Windows+NT+5.1;+Trident/4.0;+.NET+CLR+2.0.50727;+.NET+CLR+3.0.4506.2152;+.NET+CLR+3.5.30729) 0021258351381314
2009-11-16 06:04:22 76.230.124.141 - GET /Webgraphs/P_HBar.aspx width=210&height=16&stock=8.68&index=0 200 550 Mozilla/4.0+(compatible;+MSIE+8.0;+Windows+NT+5.1;+Trident/4.0;+.NET+CLR+2.0.50727;+.NET+CLR+3.0.4506.2152;+.NET+CLR+3.5.30729) 00212583513813149
根本就不是schema.ini中定义的列,并且执行SELECT [date] FROM OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Text;HDR=YES;DATABASE=d:\temp2\rtetrade2\iislog\2009-11-18',Filtered_ex091116#txt)就报错,怎么回事呢?

解决方案 »

  1.   

    谁能详细讲讲OPENROWSET和schema.ini怎么配合使用呢?
      

  2.   

    看起来有点像格式化文件  参考下
     如何使用BCP导出格式文件 BCP不仅可以根据表、视图导入导出数据,还可以配合格式文件对导入导出数据进行限制。格式文件以纯文本文件形式存在,分为一般格式和xml格式。用户可以手工编写格式文件,也可以通过BCP命令根据表、视图自动生成格式文件。 EXEC master..xp_cmdshell 'BCP AdventureWorks.sales.currency format nul -f c:\currency_format1.fmt -c -T' 上述命令将currency表的结构生成了一个格式文件currency_format1.fmt,下面是这个格式文件的内容。 9.0 

    1 SQLCHAR 0 6 "\t" 1 CurrencyCode SQL_Latin1_General_CP1_CI_AS 
    2 SQLCHAR 0 100 "\t" 2 Name SQL_Latin1_General_CP1_CI_AS 
    3 SQLCHAR 0 24 "\r\n" 3 ModifiedDate  这个格式文件记录了这个表的字段(共3个字段)类型、长度、字符和行分割符和字段名等信息。 BCP还可以通过-x选项生成xml格式的格式文件。 EXEC master..xp_cmdshell 'BCP AdventureWorks.sales.currency format nul -f c:\currency_format2.fmt -x -c -T'  
    xml格式文件所描述的内容和普通格式文件所描述的内容完全一样,只是格式不同。 4. 如何使用BCP导入数据 BCP可以通过in命令将上面所导出的currency1.txt和currency2.txt再重新导入到数据库中,由于currency有主键,因此我们将复制一个和currency的结构完全一样的表。 SELECT TOP 0 * INTO AdventureWorks.sales.currency1 FROM AdventureWorks.sales.currency  
    将数据导入到currency1表中 EXEC master..xp_cmdshell 'BCP AdventureWorks.sales.currency1 in c:\currency1.txt -c -T'  
    导入数据也同样可以使用-F和-L选项来选择导入数据的记录行。 EXEC master..xp_cmdshell 'BCP AdventureWorks.sales.currency1 in c:\currency1.txt -c -F 10 -L 13 -T'  
    在导入数据时可以根据已经存在的格式文件将满足条件的记录导入到数据库中,不满足则不导入。如上述的格式文件中的第三个字段的字符长度是24,如果某个文本文件中的相应字段的长度超过24,则这条记录将不被导入到数据库中,其它满足条件的记录正常导入。 使用普通的格式文件 EXEC master..xp_cmdshell 'BCP AdventureWorks.sales.currency1 in c:\currency1.txt -F 10 -L 13 -c -f c:\currency_format1.fmt -T'  
    使用xml格式的格式文件 EXEC master..xp_cmdshell 'BCP AdventureWorks.sales.currency1 in c:\currency1.txt -F 10 -L 13 -c -x -f c:\currency_format2.fmt -T'  
      

  3.   

    schema.ini的内容[Filtered_ex091116.txt]
    ColNameHeader=True
    [Filtered_ex091116.txt]
    DateTimeFormat=yyyy-mm-dd
    [Filtered_ex091116.txt]
    format=Delimited( )
    [Filtered_ex091116.txt]
    Col1=date char width 10
    [Filtered_ex091116.txt]
    Col2=time char width 8
    [Filtered_ex091116.txt]
    Col3=cs-method char width 9
    [Filtered_ex091116.txt]
    Col4=cs-uri-stem char width 199
    [Filtered_ex091116.txt]
    Col5=cs-uri-query char width 199
    [Filtered_ex091116.txt]
    Col6=cs-username char width 49
    [Filtered_ex091116.txt]
    Col7=c-ip char width 49
    [Filtered_ex091116.txt]
    Col8=cs(User-Agent) char width 99
    [Filtered_ex091116.txt]
    Col9=cs(Referer) char width 199
    [Filtered_ex091116.txt]
    Col10=sc-status integer
    [Filtered_ex091116.txt]
    Col11=sc-bytes integer
      

  4.   

    解决了,schema.ini的内容写错了。[Filtered_ex091116.txt]只能出现在开头,并且只出现一次。