KSQLでのUpdateマルチテーブルカスケード更新の構文

1129 ワード

Update XXX Set FXXX =  
( Select ①  
  From ... 
  Where ②) 
Where ③ 

Updateには3つの論理部分が含まれなければならない:a.)フィールドをなぜ値、すなわち新しい値に更新するかを1に示す.b.)更新対象テーブルとソーステーブルとの対応関係を②に示すc.)更新対象テーブルにどのようなレコードが更新されるかを③に示す注意:updte文を書いた後、ksqlで翻訳する必要があり、oracleとdb 2でいくつかの文(パラメータを含む可能性がありますか?)を多く翻訳する可能性があります.を選択すると、実行時にエラーが発生します.Caused exception message is:インデックスでINまたはOUTパラメータが失われます.3例:
UPDATE T_SD_SaleOrderEntry  
SET (FPreReceived, FUnPrereceivedAmount) =  
          (SELECT T_SD_SaleOrderEntry.FPreReceived + IsNull(rbe.FActualAmt, 0)   
               AS FPreReceived,   
               T_SD_SaleOrderEntry.FPrepayment - IsNull(rbe.FActualAmt, 0)   
               AS FUnPrereceivedAmount  
         FROM T_CAS_ReceivingBillEntry rbe  
         WHERE rbe.FSourceBillEntryId = T_SD_SaleOrderEntry.FID AND rbe.FReceivingBillID = "xxxx")  
WHERE T_SD_SaleOrderEntry.FID IN  
          (SELECT soe.FID  
         FROM T_SD_SaleOrderEntry soe, T_CAS_ReceivingBillEntry rbe  
         WHERE rbe.FSourceBillEntryId = soe.FID AND rbe.FReceivingBillID = "xxxx")