【发布时间】:2021-12-29 14:17:56
【问题描述】:
我试图让 VBA 在 netezza 数据库中运行选择查询,然后将结果插入到 Oracle 数据库表中的表中。
到目前为止,这是我的代码:
Sub Netezza_to_Oracle_table()
Dim mcon As ADODB.Connection
Dim mConnectionString As String
Dim mrecset As New ADODB.Recordset
Dim mSqlQry As String
Dim con As ADODB.Connection
Dim ConnectionString As String
Dim recset As New ADODB.Recordset
Dim SqlQry As String
Set mcon = New ADODB.Connection
Set mrecset = New ADODB.Recordset
Set con = New ADODB.Connection
Set recset = New ADODB.Recordset
mConnectionString = "dsn=NZSQL;servername=servername;port=1234;database=database;User ID=me01;password=password123"
ConnectionString = "GOODSQL.1;User ID=cheese_data;password=password456;Data Source=ORACLE"
mcon.Open mConnectionString
mSqlQry = "SELECT COLUMNS FROM TABLE WHERE ETC "
mrecset.Open mSqlQry, mcon
con.Open ConnectionString
SqlQry = " INSERT INTO MY_ORACLE_TABLE (SELECT * FROM " & ("mrecset") & " ) "
recset.Open SqlQry, con
recset.Close
mcon.Close
Set mrecset = Nothing
con.Close
Set recset = Nothing
End Sub
我认为我遇到的问题是从
获取记录集mrecset.Open mSqlQry, mcon
进入
SqlQry = " INSERT INTO MY_ORACLE_TABLE (SELECT * FROM " & ("mrecset") & " ) "
因为有一条消息说当它到达时表不存在
recset.Open SqlQry, con,
如果我将SqlQry 中的 SQL 替换为
select * from MY_ORACLE_TABLE
然后它运行该代码。
我做这一切都是错的,还是我可以添加/更改一些相对简单的东西来让它工作? (或者我可以以某种方式创建一个虚拟临时表并引用它吗?)
谢谢
【问题讨论】:
标签: sql vba oracle netezza recordset