问题标签 [openrowset]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql-server-2000 - 使用 OPENROWSET 将 .XLSX excel 文件导入 SQL 2000 表
您好我可以成功地将 .XLS excel 文件数据导入到SQL server 2000的表中,如下所示:-
但是,如果 excel 文件是 .XLSX 格式,我也无法做到这一点。
有什么建议吗?
对于我的问题,我尝试了这个: -
但得到这个错误: -
服务器:消息 7403,级别 16,状态 1,第 28 行
找不到 OLE DB 提供程序“Microsoft.ACE.OLEDB.12.0”的注册表项。OLE DB 错误跟踪 [非接口错误:提供程序未注册。]。
谢谢
sql - 使用 SQL Server 2005 导入 Excel 2007 文件
我有一个 excel 2007 文件,大约有 301808 行和 2 列。我试图使用 SSIS 导入但不能使用 2007 excel。然后我决定尝试在 SQL Server 中创建一个链接服务器,按照此处的说明进行操作:
- 在 SQL Server Management Studio 中,展开对象资源管理器中的服务器对象。
- 右键单击链接服务器,然后单击新建链接服务器。
- 在左侧窗格中,选择“常规”页面,然后执行以下步骤:
- 在第一个文本框中,键入链接服务器的任何名称。
- 选择其他数据源选项。
- 在提供程序列表中,单击 Microsoft Jet 4.0 OLE DB 提供程序。
- 在产品名称框中,键入 Excel 作为 OLE DB 数据源的名称。
- 在数据源框中,键入 Excel 文件的完整路径和文件名。
- 在提供程序字符串框中,为 Excel 2002、Excel 2000 或 Excel 97 - 工作簿键入 Excel 8.0。
- 单击确定以创建新的链接服务器。
从这里: http: //support.microsoft.com/kb/306397/EN-US
但是,说明仅涵盖以前的 excel 文件而不是 2007,因此我查找了 2007 的连接字符串,并在链接服务器的设置中使用 Excel 12.0 而不是 Excel 8.0:
- 提供者:Microsoft Office 12.0 Access 数据库引擎 OLE DB
- 提供者产品名称:Excel 数据源:C:\Documents and
- Settings\UserName\Desktop\Main\FilesIns\MyExcelFile.xlsx 提供程序
- 字符串:Excel 12.0
- 地点:
- 目录:
然后我得到了这个错误:
链接服务器“EXCEL_MY_FILE”的 OLE DB 提供程序“Microsoft.ACE.OLEDB.12.0”不包含表“报表 1$”。该表不存在或当前用户对该表没有权限。
我进入安全性并添加了 nt authority\system 以防万一它是权限问题,它仍然给了我上面的错误。
该 Excel 表称为“报告 1”。
我还尝试在 sql 中使用 openrowset 来查看发生了什么,我得到了这个:
SQL Server 阻止了对组件“即席分布式查询”的声明“OpenRowset/OpenDatasource”的访问,因为该组件作为该服务器安全配置的一部分被关闭。
然后我尝试了下面链接中的代码,看看它是否有助于我使用 openrowset:
并得到:
链接服务器“(null)”的 OLE DB 提供程序“Microsoft.ACE.OLEDB.12.0”返回消息“FROM 子句中的语法错误。”。消息 7321,级别 16,状态 2,第 1 行准备查询“Select * from C:\Documents and Settings\UserName\Desktop\Main\FilesIns\MyExcelFile.xlsx”以针对 OLE DB 提供程序“Microsoft. ACE.OLEDB.12.0" 用于链接服务器 "(null)"。
所以我不确定我的 openrowset 语句中的值是否正确。
真的只是在寻找一种不使用 SSIS 将这个文件导入 sql 表的方法——无论如何我都不能使用它。
谢谢
安德鲁
sql-server-2008 - 更新到 Openrowset SQL SERVER 2008
我正在尝试从本地查询对远程表执行 UPDATE 操作。显然我知道它应该使用 OPENROWSET 但我不知道该怎么做。
我知道你可以插入到一个 OPENROWSET 做这样的事情:
或者我可以做这样的选择:
但是我还没有想出更新的解决方案。那可能吗?
提前致谢!
sql - 使用 Excel 的 SQL OPENROWSET
我正在尝试将 Excel 电子表格中的数据读入 SQL,但由于某种原因,即使电子表格在该特定列/行中有数据(在本例中为数字),某些字段仍显示为 NULL。
所有其他有文本的列/行都显示正常。
这是我正在使用的查询
我正在使用 SQL Server Management Studio 2005 运行查询。
关于为什么会发生这种情况的任何想法/建议?谢谢。
sql - 使用 OPENROWSET 和 XML 时 T-SQL 在数据之间添加分隔符
我正在尝试在合并在单个列中的数据之间添加分隔符,并且尝试这样做时遇到了很多麻烦。
我正在处理一个大型 XML 文件(8+ megs),并试图将数据片段组合成我的数据库的单个列。下面的查询正在执行此操作(有点),但当前没有数据分离。
test.xml 文件:
它返回的内容:
这几乎是我想要的!两个注释节点都已合并到一个列中...但我不知道如何在值“测试 123 ,另一个测试”之间添加分隔符
任何帮助将不胜感激!
sql-server - 尝试将 FoxPro DBF 文件导入 SQL Server
正如标题所说,我正在尝试使用 openrowset 将 FoxPro dbf 文件导入 sql server。起初,我尝试将 DBF 导出到 xls 文件并使用导入/导出向导导入。这通常工作得很好,但是有一个字段有时包含一个非常长的字符串,并且在从 dbf 导出到 xls 期间,该字符串被截断为 4096 个字符。
我找到了一篇旧帖子,其中包含有关如何使用 openrowset 执行此操作的说明。
当我尝试第一个答案时:
我得到错误:
当我尝试第二个答案时:
我得到错误:
我尝试使用 regsvr32 手动注册 OLE*.dll 文件,但只有其中一些有效。在 ole32、oleacc、oleaut32 和 oleprn 上,我收到了一条成功消息。在 oleacchooks、oleaccrc、oledlg 和 oleres 上,我收到了这个错误:
经过一番 调查,我尝试安装组件,但是当我尝试为 FoxPro 安装 msi 文件(在此处找到)时,出现此错误:
所以,我在这里正式迷路了。有人对如何让 openrowset 工作或其他导入 dbf 文件的方式有建议吗?
sql - 如何将 Excel 2010 中的数据导入 SQL 表
我正在使用这个,
你能帮忙找出错误吗?
sql错误:
1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以了解在 '('Microsoft.Ace.OLEDB.14.0','Excel 14.0;Database=L:\SMS.xlsx;HDR=YES', 'SELECT i 附近使用的正确语法' 在第 1 行
我正在使用 excel 2010。
mysql - 将图片插入sql表时出错
我正在尝试使用以下查询将“png”图像插入到 sql 表字段(称为条形图,其类型为 blob)中。
INSERT INTO disease_symptom_soc(barchart) Values ((SELECT BULKColumn FROM OPENROWSET(BULK N'/home/barchartC2936861.png', SINGLE_BLOB) AS Image)) where disease_id='C2936861';
我收到以下错误。可能是什么原因?
ERROR 1064 (42000):您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 '(BULK N'/home/barchart' 附近使用正确的语法
sql - 数据溢出导致转换失败(数字)
我正在尝试将数据从 .dbf 文件移动到 SQL Server 2008 中的表中,并且在多个数字列上出现以下错误:
链接服务器“(null)”的 OLE DB 提供程序“MSDASQL”返回消息“多步 OLE DB 操作生成错误。检查每个 OLE DB 状态值(如果可用)。没有完成任何工作。”。消息 7341,级别 16,状态 2,第 1 行无法从链接服务器“(null)”的 OLE DB 提供程序“MSDASQL”获取列“[MSDASQL].apryr”的当前行值。转换失败,因为数据值溢出了提供程序使用的数据类型。
它只发生在数字列上,而不是在每个数字列上。字符数据很好,没有可能出现任何问题的日期/时间数据。
这是我正在使用的代码示例:
插入 [table] select * from OPENROWSET('MSDASQL', 'DRIVER=Microsoft Visual FoxPro Driver; SourceDB=[filepath]; SourceType=DBF', 'select * from [file].dbf)
由于 dbf 文件中的数据是客户数据,我被告知我不能手动修复文件中的垃圾数据(假设有),一切都必须通过 SQL 代码完成。我在互联网上搜索并没有真正找到解决这个问题的方法。我会很感激任何帮助。
谢谢你。
sql - Microsoft.ACE.OLEDB.12.0 无法执行查询
我有这个 sql 代码。它更新 excel 文件中的特定单元格。
这段代码在 32 位中成功执行,但在 64 位服务器(MSSQL Server 2012)中失败。我在 64 位中收到此错误:
这file.xls
是一个在 32 位电脑上创建的 excel 文件。
有人可以帮我解决这个问题。我一直在网上搜索,但真的没有得到解决方案,甚至没有找到解决它的指南。如果这个问题已经发布并回答,请发布确切的链接。
顺便说一句,我已经安装了 ACE 提供程序和所有需要的设置。事实上,这段代码可以正常工作,但不能使用 UPDATE 语句:
谢谢!