5

Oracle OraOLEDB.Oracle Provider を使用して、Excel 2010 VBA コードでクエリを実行できません。

特定のクエリは正常に機能して結果を返しますが、他のクエリは結果を返しません...

私はそのように接続します:

 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

何も返さない

4

3 に答える 3

2

コメントの書式設定ではコードを追加できないため、これを回答にしています。

コマンド オブジェクトを介してストアド プロシージャを個別に実行すると、ストアド プロシージャは機能しますか?

command2.CommandText = "MySchema.MyPackage.MyFunction"
command2.CommandType = adCmdStoredProc
command2.Parameters.Refresh
command2.Parameters.Item(1).Value = "Param1"
command2.Execute
Debug.Print command2.Parameters.Item(0).Value
于 2013-11-22T21:10:47.907 に答える