2015-03-13 62 views
1

我有一个logparser一个班轮在SQL Server数据库输出。LogParser SQL Server驱动程序的窗口2012 x64

我有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的64位,安装SQL Server Management Studio中)上。现在我想从脚本服务器运行(窗口2012r2没有SSMS)

如果我运行相同的命令,我有以下错误:

Task aborted.
Error connecting to ODBC Server
SQL State: IM002
Native Error: 0
Error Message: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified

如果我改变“SQL Server本机客户端10.0”到“SQL Server”,我有同样的错误。

如果我省略了-driver SQL Server的一部分,我有通常的转换错误消息

SQL table column "REQ_DATE_DT" data type is not compatible with SELECT clause item "REQ_DATE_DT" (type TIMESTAMP)

所以数据库服务器可达,可与我给的凭证进行查询。

我从microsoft msi安装了odbc驱动程序,它们都出现在ODBC数据源管理器x32和x64中。

我试图ODBC服务器10(SQL Server 2008 R2中)和11(SQL Server 2012中)

我缺少什么?

EDIT 1:

我测试没有成功

  • SQLNCLI,sqlCmdLnUtils和SharedManagementObjects(64)安装多个SQL特性。我将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 ...)后,我总是遇到同样的错误

我会尝试在其他服务器上,但我认为这是涉及要么只有64位的SQL本机的一个问题客户端或windows 2012r2 x64 ...

回答

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的问题。

这里有一些问题,帮助我:

0

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

+0

所以,我卸载了所有SQL功能,2008/2008R2/2012我了。然后我安装了sqlncli,sqlCmdLnUtils和SharedManagementObjects(x64)。 我将sqlcmd.exe的路径添加到我的$ Path。 问题仍然存在,我可以运行sqlcmd和“Odbc Data Source”显示sql server 2008驱动程序(x86和x64)。 我会尝试从SqlServer 2008 SP3安装更多功能。 – 2015-03-16 11:16:45

+0

我安装了一些功能没有成功。以下是我安装的组件列表(x64):SQL 2008命令行实用程序,管理对象,本机客户端,复制管理对象,SQLXML 4.0 SP1,SQL Server系统CLR类型,SQL Server 2008的Powershell扩展。所有这些都是x64特征。我想知道LogParser(x86)是否可以与x64本机客户端进行交互。我想我的下一步将是在服务器上安装完整的ssms ... – 2015-03-16 11:28:11

+0

安装完整个sql server的东西(包括ssms,cli ...)后,我总是遇到同样的错误“[Microsoft] [ODBC Driver Manager]数据源名称未找到,未指定默认驱动程序“。我会尝试在其他服务器上,但我认为这是一个涉及Windows 2012r2 x64的问题... – 2015-03-17 12:30:17

相关问题