0

我正在使用 toad for oracle,我想从多个表中获取数据并将它们插入到一个新表中。

这是我的脚本:

insert into mydb.testTable2 (FAO, Company, Cost_Center, Description)
select (select FAO from bigdb.wtags),
       (select DESCRIPTOR from bigdb.wtags),
       (select cost_center from bigdb.MASTERFILE),
       ''
from bigdb.wtags join bigdb.masterfile on bigdb.wtags.fao = bigdb.MASTERFILE.workday_number

我得到错误:

table or view does not exist

我一直在 www.w3schools.com 上阅读 sql,它说该insert into语句用于创建新表。我不能使用多个数据源创建新表吗?

另外,我可以将从同一个表中抓取的 2 个选择语句合并到 1 行中吗?我试过了,但它给了我一个错误:too many valuesmissing expression. 这可能是由于另一个错误吗?

4

1 回答 1

1

table or view does not exist表示您在 SQL 中指定的表或视图在数据库中不存在(或存在,但您无权访问它)。

这意味着不存在以下情况之一:

  • mydb.testTable2
  • bigdb.wtags
  • bigdb.MASTERFILE

除此之外,您的查询结构并没有真正意义。正如它所写的那样,您正在查询bigdb.wtagsand bigdb.masterfile,但没有使用任何结果——而是尝试从其他三个单独的查询中插入。我怀疑您正在尝试执行以下操作:

insert into mydb.testTable2 (FAO, Company, Cost_Center, Description)
select bigdb.wtags.FAO,
       bigdb.wtags.DESCRIPTOR,
       bigdb.MASTERFILE.cost_center,
       null
  from bigdb.wtags 
       join bigdb.masterfile 
           on bigdb.wtags.fao = bigdb.MASTERFILE.workday_number

如果您想创建一个表作为插入的一部分,则语法略有不同:

create table mydb.testTable2 as
select bigdb.wtags.FAO,
       bigdb.wtags.DESCRIPTOR,
       bigdb.MASTERFILE.cost_center,
       null description
  from bigdb.wtags 
       join bigdb.masterfile 
           on bigdb.wtags.fao = bigdb.MASTERFILE.workday_number
于 2013-10-25T19:13:29.287 回答