【问题标题】:Seeing Error When Inserting Multiple Select Statements into Table将多个选择语句插入表时看到错误
【发布时间】:2021-05-13 11:02:54
【问题描述】:

在我的插入表中包含多个选择语句时,我看到 00904: invalid identifier 错误

有谁知道为什么,或者如何修改这个 INSERT 查询以使其正常工作?

(i) 我已确认这些列有效且均存在

(ii) 单独的 select 语句在单独运行时执行没有问题

(iii) select 语句产生 NUMBER 数据类型的单个值

(iv) 错误信息中提到的第 4 列第 21 行恰好位于 F2 位置,在下面的 INSERT 语句中显示为 --> F2

INSERT INTO
    VCHR_DASHB_SUMMARY_STATS (CurrWkCount, YEARTODATE)
SELECT 
    F1.CurrWkCount, -->F2.YEARTODATE   
FROM
(
    SELECT COUNT(VOUCHER_FILED_DATE) AS COUNT, SYSDATE AS "AS OF" 
    FROM CONTINUED_CLAIMS
    WHERE VOUCHER_FILED_DATE >= trunc ( sysdate, 'iw' )
    AND VOUCHER_FILED_DATE  < trunc ( sysdate, 'iw' ) + 5
) F1
CROSS JOIN
(
    SELECT COUNT(VOUCHER_FILED_DATE)
    FROM CONTINUED_CLAIMS
    WHERE voucher_filed_date >= trunc(sysdate, 'year')
) F2;

命令行错误:4 列:21 错误报告 - SQL 错误:ORA-00904:“F2”。“YEARTODATE”:标识符无效 00904. 00000 - "%s: 无效标识符"

【问题讨论】:

    标签: oracle select insert ora-00904


    【解决方案1】:

    F2 是一个内联视图,它不包含YEARTODATE 列;它唯一的列是count(voucher_filed_date),它甚至没有别名,所以...

    f1.currwkcount 也是如此——那里没有这样的专栏。你使用了别名count(你不应该这样做;它是Oracle函数的名称并且会造成混淆)和"AS OF"(完全一样:大写,两个单词,用双引号括起来 - 你不能以任何其他方式使用它)。

    考虑这样的事情(请注意,我没有您的表格,因此无法对其进行测试)。我假设count(voucher_filed_date) 代表yeartodate;如果不是,那是什么?

    insert into vchr_dashb_summary_stats (currwkcount, yeartodate)
    select f1.currwkcount, f2.yeartodate   
    from (select count(voucher_filed_date) as currwkcount, 
                 sysdate as as_of
          from continued_claims
          where voucher_filed_date >= trunc ( sysdate, 'iw' )
            and voucher_filed_date  < trunc ( sysdate, 'iw' ) + 5
         ) f1
    cross join
        (select count(voucher_filed_date) as yeartodate
         from continued_claims
         where voucher_filed_date >= trunc(sysdate, 'year')
        ) f2;
    

    【讨论】:

      猜你喜欢
      • 2015-02-10
      • 1970-01-01
      • 2021-02-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多