我的F盘下有个schema.ini
里面有这么一行内容:
"This is a test"执行代码:exec xp_cmdshell 'type F:\schema.ini'/**
ouput
---------------
"This is a test"
**/

解决方案 »

  1.   

    谢谢楼上,我不是想显示文件内容,我是要把该文件做为数据源去JOIN其它数据库表
      

  2.   


    declare @t table(name varchar(100))
    insert @t(name) exec('exec xp_cmdshell ''type F:\schema.ini''')
    select name from @t
      

  3.   

    sorry:declare @t table(name varchar(100))
    insert @t(name) exec('exec xp_cmdshell ''type F:\schema.ini''')
    select name from @t
      

  4.   

    谢谢楼上,这里我想讨论如何直接用LINKEDSEVER,或OPENROWSET等直接读取文本文件,如SELECT ... FROM OPENROWSET(....)。由于有成对双引号出现在数据中,导致SELECT的结果部分丢失成为NULL,这样不符合我的要求。如果确实不能直接读,我将选择用BULK INSERT将数据导入再查询。
      

  5.   

    看你的ID,建议使用sqlldr,load文本的内容到oracle的一个vachar2字段,然后msslq link到oracle后
    再查询oracle该字段,或者直接dts导出到mssql
      

  6.   

    谢谢楼上几位,问题自己解决了。先给大家一个关于schema.ini和文本文件驱动编程的官方网址。 http://msdn2.microsoft.com/en-us/library/ms709353.aspx解决我提出的问题的方法是在schema.ini中加上如下内容,似乎这个属性微软并没有公开。
    TextDelimiter=None根据目的的不同,该属性还可以设为:
    TextDelimiter="
    TextDelimiter='希望这点经验能给其他有这方面需求的朋友提供一些帮助。如有其他见解,欢迎大家继续讨论。本贴将该为散分贴,并加分至200分。11月前结贴。