我无法通过Excel VBA 在远程Oracle SQL Server上执行查询时尝试使用Excel文件表中的本地表在同一查询中执行INNER JOIN 即可。 例如:
["LTE_Cells$LTE_Cells_Tmp"]
的Excel表格:Oracle SQL查询
SELECT a.STARTDATE, a.ENODEB, a.EUTRANCELLFDD, (a.COUNTER_1/8/1024)+
a.COUNTER2/8/1024) AS Total_Total_Traffic_TB FROM »»»LOCAL_EXCEL_TABLE««««
INNER JOIN REMOTE_DATABASE.LTE_KPI_1 a ON
((»»»LOCAL_EXCEL_TABLE««««.EUTRANCELLFDD =
REMOTE_DATABASE.LTE_KPI_1.EUTRANCELLFDD) AND
(»»»LOCAL_EXCEL_TABLE««««.ENODEB = REMOTE_DATABASE.LTE_KPI_1.ENODEB)) WHERE
(((REMOTE_DATABASE.LTE_KPI_1.STARTDATE)>=sysdate-3));`
提前感谢您的帮助!
答案 0 :(得分:0)
这并没有直接回答你的问题,而且我可能对此感到茫然,但我不知道Excel或Oracle是否明确处理了你想要完成的任务。
但是,MS Access将开箱即用。简短回答:我认为您使用错误的工具完成此任务。你正在使用众所周知的锤子将一块板子看成一半。将电子表格和Oracle表链接为Excel中的链接对象,您的查询应该很容易实现。
更长的答案:虽然Access可以简单轻松地执行此操作,但它可能并且可能会在DBMS上留下破坏的路径。具体来说,您可以期望在Oracle中破坏共享池,因为Access将为Excel中的每一行发出一个查询(使用文字,不能少)。对于1,000行,它可能并不重要,但如果您要在非常大的数据集上执行此操作,您将从DBA中成为一个快速的敌人。
扩展答案:实际上,最好的方法是在Oracle表格中加载这些Excel电子表格的内容,让DBMS完成繁重的工作。这是RDBMS的面包和黄油。