问题描述
我真的希望这可以实现。基本上,我有一个例程来查询我在 Oracle sql Developer 中创建的视图。但是,整个视图的行数比我需要的多数千行,我想根据同一个 Excel 文件中的零件编号列表仅提取一个子集,但我尝试的所有操作都会导致错误。
这是现在的代码:
--Create Connection and Recordset objects
Set odmConn = New ADODB.Connection
Set odmRec = New ADODB.Recordset
odmConn.ConnectionTimeout = 0
odmConn.CommandTimeout = 0
odmRec.CursorLocation = adUseClient
--Open Connection
odmConn.Open "Driver={Microsoft ODBC for Oracle};SERVER=ODBCServer;UID=MyID;PWD=MyPass;"
--Define sql string and sheet name
strsql = "SELECT A.* " & _
"FROM MyID.MyTable A" & _
"INNER JOIN " & _
"(SELECT * FROM [Excel 12.0 Xml;HDR=Yes;Database=MyExcelPath].[MAT$]) B" & _
"ON A.MATERIAL = B.MATERIAL"
shName = "MySheet"
--Extract new data to Recordset
odmRec.Open strsql,odmConn,adOpenStatic,adLockReadOnly
If odmRec.RecordCount <> 0 Then
--copy new data from Recordset
ThisWorkbook.Sheets(shName).Range("A2").copyFromrecordset odmRec
End If
以上导致“ORA-00903:无效表名”错误。
我也试过 OPENROWSET 和 OPENDATASOURCE 都无济于事。这两者都会导致出现“缺少右括号”或“sql 命令未正确结束”的错误。
有没有办法做到这一点?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)