LogParser SQL Server驱动程序窗口2012 x64

时间:2015-03-13 18:58:03

标签: sql-server odbc windows-server-2012-r2 logparser

我有一个logparser one liner,它在SQL Server数据库中输出。

我在logparser时间戳和SQL Server date(7)类型之间存在转换问题。我通过指定驱动程序

解决了这个问题
-driver "sql server native client 10.0"

这是整个oneliner:

LogParser "select to_date(to_timestamp('2015-03-13','yyyy-MM-dd')) AS REQ_DATE_DT, count(*) as REQ_REQUESTS_NU, 5 INTO MyTable from \\myServer\MyIISlog.log where time >= '12:00:00' and time <='14:59:59' " -i:IISW3C -o:SQL -createTable:OFF -server:MyServer\MyInstance -database:MyDB -username:myUser -password:MyPass -driver "sql server native client 10.0"

此命令在我的开发机器上运行良好(Windows 7 x64,安装了SQL Server Management Studio)。现在我想从脚本服务器(没有ssms的Windows 2012r2)

运行它

如果我运行相同的命令,则会出现以下错误:

  

任务中止。
  连接到ODBC服务器时出错
  SQL状态:IM002
  原生错误:0
  错误消息:[Microsoft] [ODBC驱动程序管理器]未找到数据源名称,并且未指定默认驱动程序

如果我将“SQL Server本机客户端10.0”更改为“SQL Server”,则会出现同样的错误。

如果省略-driver sql server部分,我有通常的转换错误消息

  

SQL表列“REQ_DATE_DT”数据类型与SELECT子句项“REQ_DATE_DT”(类型TIMESTAMP)不兼容

因此可以访问数据库服务器,并且可以使用我提供的凭据进行查询。

我从microsoft msi安装了odbc驱动程序,它们出现在ODBC Data Source Administrator x32和x64中。

我尝试了odbc服务器10(SQL Server 2008 R2)和11(SQL Server 2012)

我错过了什么?

编辑1:

我测试了安装几个sql功能但没有成功

  • sqlncli,sqlCmdLnUtils和SharedManagementObjects(x64)。我将sqlcmd.exe的路径添加到我的$ Path。问题仍然存在,我可以运行sqlcmd,“Odbc Data Source”显示sql server 2008驱动程序(x86和x64)。
  • 我安装了一些功能但没有成功。以下是我安装的组件(x64)的列表:SQL 2008命令行实用程序,管理对象,本机客户端,复制管理对象,SQLXML 4.0 SP1,SQL Server系统CLR类型,SQL Server 2008的Powershell扩展。所有这些都是x64特征。
  • 安装整个sql server之后(包括ssms,cli ...)我总是遇到同样的错误

我会尝试其他服务器,但我认为这是一个只涉及x64 sql本地客户端或Windows 2012r2 x64的问题......

2 个答案:

答案 0 :(得分:0)

您可能需要安装SQL Server Native Client(与ODBC驱动程序不同),可以在https://msdn.microsoft.com/en-us/data/ff658533.aspx?f=255&MSPPError=-2147217396找到。

答案 1 :(得分:0)

我设法使用-oConnString LogParser选项而不是-driver -server -database ...来解决问题:

LogParser "select to_date(to_timestamp('2015-03-13','yyyy-MM-dd')) AS REQ_DATE_DT, count(*) as REQ_REQUESTS_NU, 5 INTO MyTable from \\myServer\MyIISlog.log where time >= '12:00:00' and time <='14:59:59' " -i:IISW3C -o:SQL -createTable:OFF -oConnString:"Driver={SQL server native client 10.0};server=MyServer;database=MyDB;uid=MyUser;pwd=MyUser;"

由于这种解决方法,我认为最初的问题是ODBC x86和x64。

以下是一些有助于我的问题: