在处理大量数据时,中的许多人可能会考虑迁移到关系数据库管理系统(RDBMS),例如MS Access。然而,在许多情况下,这个决定并不容易做出,这就是为什么大多数人会放弃这个想法,继续使用所拥有的。在本文中,将学习如何迁移大量数据,同时保留电子表格用于信息的整洁展示。
请注意,本文只涉及单向数据流,即从Oracle数据库到MSExcel。
作为一名软件开发人员,尝试通过开发一个解决方案来执行这项任务,一个C#应用程序,当事情变得复杂时,转向了一个名为ExcelDNA的软件,由CodePlex提供,仍然使用C#。然后,停顿了一分钟,思考了这个问题,既然这是一个简单的任务,涉及从Oracle数据库检索数据到Excel(但不是相反),为什么不使用标准的ODBC驱动程序呢?问题就这样解决了。
为了进行本教程,需要了解ODBC驱动程序以及编写SQL语句(结构化查询语言)的基本知识。
根据维基百科,ODBC(开放数据库连接)是一种标准的C编程语言接口,用于访问数据库管理系统(DBMS)。ODBC的设计者旨在使其独立于数据库系统和操作系统。应用程序可以使用ODBC从DBMS查询数据,无论它使用的是哪种操作系统或DBMS。
ODBC通过使用ODBC驱动程序作为应用程序和DBMS之间的翻译层来实现DBMS独立性。应用程序通过与之链接的ODBC驱动程序管理器使用ODBC函数,驱动程序将查询传递给DBMS。
ODBC定义了一个标准的C API,用于访问关系DBMS。它是由SQL访问组在1992年开发的,以标准化应用程序对DBMS的使用。ODBC提供了一个通用的中间件层,位于应用程序和DBMS之间,允许应用程序开发人员使用单一接口。如果对DBMS规范进行了更改,只需要更新驱动程序。可以将ODBC驱动程序视为类似于打印机或其他驱动程序,为应用程序提供一组标准函数,并实现DBMS特定功能。
可以使用ODBC的应用程序被称为“ODBC兼容”。任何ODBC兼容的应用程序都可以访问已安装驱动程序的任何DBMS。所有主要的DBMS以及文本或CSV文件都有驱动程序。
在本教程中,将从Oracle数据库检索数据到Excel工作表中,使用Excel单元格中的数据作为查询的参数。
首先,确保已安装并正确配置了正确的ODBC驱动程序,在这种情况下,是Oracle数据库。
打开Windows 7开始菜单,输入odbc,选择数据源(ODBC)(或者,也可以从控制面板访问)。
点击添加并选择MicrosoftODBCfor Oracle。在这一步中,通常会大幅增加缓冲区大小,以实现更快的数据检索……
回到驱动程序列表,请注意,总是可以通过从驱动程序列表中选择它并点击“配置”来配置驱动程序的基本设置。
现在回到Excel,打开任何Excel工作簿,选择数据>从其他来源>从数据连接向导。
除非列表中有Oracle提供程序,否则选择其他高级,然后选择“Microsoft OLE DB Provider for Oracle”。
根据偏好进行配置,如数据刷新间隔,最重要的是现在,连接字符串和命令文本。
在命令文本框中,意识到部分:LIKE ‘%’||?||’%’ 在这里使用的是标准,问号?稍后会提示输入参数,该参数将由模数符号%处理并前缀,这是Oracle中相当于星号*的通配符,表示>= 0个字符,意味着包含输入参数的任何单词,最后一个可以通过参数屏幕进行配置。
在这里使用了Sheet2中的单元格A3作为参数,并注意到选择了“当单元格值更改时自动刷新”复选框。
为了在Excel工作表中保持固定布局:
1.确保SQL语句返回单个值(通常是聚合的)。
2.从外部数据属性窗口中,选择“用新数据覆盖现有单元格,清除未使用的单元格”选项。
已经准备好了!只需要加载数据,可能通过刷新连接来完成。
这个示例加载了物流部门作为参数输入到单元格A2的指令订单的相对毛公吨,并将其值返回到单元格B2。
// 示例SQL查询
SELECT SUM(gross_metric_tons)
FROM orders
WHERE instruction_order LIKE '%' || ? || '%'