Oracle VBA中的现有对象已使用的名称

Oracle VBA中的现有对象已使用的名称,oracle,vba,excel,oracle10g,Oracle,Vba,Excel,Oracle10g,在VBA中,我试图使用OraDynaSet对象创建一个临时表,并在将其用于另一个select之前获取一些数据 strSQL = "create table user1.new12 as(" _ & "Select lca.coupon_upc,lca.division from lca where lca.campaign_id = " & campaign_id & "" _ & "MINUS " _ & " Select mc

在VBA中,我试图使用OraDynaSet对象创建一个临时表,并在将其用于另一个select之前获取一些数据

strSQL = "create table user1.new12 as(" _
    & "Select lca.coupon_upc,lca.division from  lca where lca.campaign_id = " & campaign_id & "" _
    & "MINUS " _
    & " Select mcr.coupon_upc,mcr.division from  mcr where mcr.campaign_id = " & campaign_id & ")"
    Set OraDynaSet = objdatabase.DBCreateDynaset(strSQL, o&)

我已经打开了与用户user1的连接,以便在执行此DDL之前执行许多select查询。现在,当我执行VBA代码时,它抛出一个错误“ORA:009955名称被现有对象使用”。我哪里做错了

该表已存在。您不是在创建临时表,而是在创建标准表:脚本结束后,它将保留在数据库中。如果已运行此脚本,但尚未删除该表,则以下执行将失败


在Oracle中,是包含临时数据的持久对象。在大多数情况下,如果您需要定期使用临时表(因为它是一个循环过程的一部分),则只需创建一次表。

如果您仅将该临时表用于一个后续查询,则仅使用“内联视图”可能更容易:


Tim

这不是一张临时桌子。我只是说我在VBA代码中将它用作临时表。@suman:通过SQL*Plus与用户
user1
连接到db,并查找对象
new12
SELECT*FROM user\u objects,其中object\u name='new12'
select t.coupon_upc, t.division from
   (select lca.coupon_upc,lca.division from  lca where lca.campaign_id = campaign_id
     MINUS 
    select mcr.coupon_upc,mcr.division from  mcr where mcr.campaign_id = campaign_id) t
 where {clauses here...}