用merge into 的时候提示 ORA-01733: virtual column not allowed here

Error: PL/SQL: ORA-01733: virtual column not allowed here
Line: 81
Text: MERGE INTO SvcOrderProfit


Error: PL/SQL: SQL Statement ignored
Line: 81

Text: MERGE INTO SvcOrderProfit


用merge into 的时候提示

REF  :http://www.cnblogs.com/dongsheng/p/4384754.html


问题代码:

 WHEN MATCHED THEN
    UPDATE
       SET IncomeRMB                    = pos_2,
           CostRMB                      = pos_3;/*,
           v_dIncomeUSDFee              = pos_4,
           v_dIncomeUSDAccount          = pos_5,
           v_dlCostUSDFee               = pos_6,
           v_dlCostUSDAccount           = pos_7,
           v_dIncomeRMBSales            = pos_8,
           v_dCostRMBSales              = pos_9,


ROOT CAUSE 本来左边应该是表名,从SQL 转过来的时候却弄成了变量。所以报错 

solution  :


表字段的保留, 非表字段的SELECT INTO 到变量里面:

      SELECT NVL((SELECT SUM(SvcOrderFee.NoTaxFeeAmount)
                              FROM SvcOrderFee
                             WHERE SvcOrderFee.CurrencyType = 0
                               AND SvcOrderFee.CreditDebitType = 0
                               AND (SvcOrderFee.AccountType = 2 OR
                                   SvcOrderFee.AccountType = 3)
                               AND SvcOrderFee.OrderBillID = v_lOrderBillID),
                            0)

INTO         v_dCostRMBSales  
                   FROM DUAL;




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值