我在使用Oracle OraOLEDB.Oracle Provider在Excel 2010 VBA代碼中運行查詢時遇到問題。Excel中的Oracle和ADO查詢不返回結果
某些查詢做工精細,並返回結果,而另一些返回任何結果...
我連這樣:
Set DBConnection = New ADODB.Connection
DBConnection.Provider = "OraOLEDB.Oracle"
DBConnection.CursorLocation = adUseClient
DBConnection.ConnectionString = "Data Source=" & TNSName & ";User Id=" & OraUserName & ";Password=" & OraPassWord & ";"
DBConnection.Open
我再嘗試查詢:
command2.ActiveConnection = DBConnection
command2.CommandText = "SELECT COL1,COL2,COL3 FROM table(MySchema.MyPackage.MyFunction('Param1'))"
command2.CommandType = adCmdText
Set QueryRecordSet = New ADODB.Recordset
QueryRecordSet.LockType = adLockReadOnly
QueryRecordSet.CursorType = adOpenDynamic
QueryRecordSet.Open command2
command2.Execute
和我什麼也沒有得到任何想法?
如果我運行像
select * From my_table
它工作正常的簡單查詢...看來連接或其它更復雜的查詢,不進行編譯?
此外,從視圖中選擇不起作用。
select * from my_view
返回Nothing
我想我也應該注意到這些函數都在一個包中。 – mrkb80
我也遇到過很多關於CTE(有聲明)不能與ADO一起工作的文章。從ADO專家那裏聽到這裏會發生什麼,聽起來不是簡單地傳遞給數據庫,這真是太棒了! ADO試圖解析這個查詢是什麼?爲什麼它默默地失敗? – mrkb80
你嘗試過'DBConnection.CursorLocation = adUseServer'嗎? – ThinkJet