Oracle11g 多表插入另一个表中的值

Oracle11g 多表插入另一个表中的值,oracle11g,multi-table,Oracle11g,Multi Table,我有桌子-假顾客,预顾客,普通顾客。根据假客户表中存在的约束,必须将值带到预客户或正常客户 我使用以下代码: INSERT ALL INTO PRE_CUST(CUST_ID, TOTAL_COST_TRANS) (SELECT DISTINCT CUST_ID,C FROM ( SELECT CUST_ID, SUM(COST_TRANS) OVER (PARTITION BY CUST_ID) as C FROM FAKE_CUST)

我有桌子-假顾客,预顾客,普通顾客。根据假客户表中存在的约束,必须将值带到预客户或正常客户

我使用以下代码:

INSERT ALL
         INTO PRE_CUST(CUST_ID, TOTAL_COST_TRANS) (SELECT DISTINCT CUST_ID,C FROM (
                    SELECT CUST_ID, SUM(COST_TRANS) OVER (PARTITION BY CUST_ID) as C FROM FAKE_CUST) WHERE C>1000)

         INTO NORMAL_CUST(CUST_ID, TOTAL_COST_TRANS) (SELECT DISTINCT CUST_ID,C FROM (
                    SELECT CUST_ID, SUM(COST_TRANS) OVER (PARTITION BY CUST_ID) as C FROM FAKE_CUST) WHERE C<1000)
SELECT 1 FROM DUAL;

用于多表插入的语法一开始就不正确

用于计算insert条件的WHEN子句必须位于insert_INTOTAOLANCE之前

您的查询应如下所示:

INSERT ALL
   WHEN c > 1000 THEN
      INTO pre_cust (cust_id, total_cost_trans)
   WHEN c < 1000 THEN
      INTO normal_cust (cust_id, total_cost_trans)
   SELECT CUST_ID, SUM(COST_TRANS) OVER (PARTITION BY CUST_ID) as C 
   FROM   FAKE_CUST

顺便说一下,对于多表插入,您没有使用正确的语法。WHEN条款在插入条款之前出现了很多…我本应该检查一下限制的..现在工作正常..很高兴知道这一点。如果它对你有帮助,你可以+1并接受答案!还没有足够的声誉