执行提示:无效的SQL语句
SQL语句如下:
  if exists ((SELECT ID,
    name,
    phone,
    mobile,
    address,
    buyMachineType,
    buyDate,
    buyAddress,
    buyPrice,
    customerType,
    vipCard,
    content,
    email,
    area_id,
    area_code,
    area_name,
    importDirection
   FROM tbl_customer_amt_temp A
   WHERE A.IMPORTDIRECTION=1
)A
ON (B.ID=A.ID))
begin update   tbl_customer_temp B set
   B.name=A.name,
   B.phone=A.phone,
   B.mobile=A.mobile,
   B.address=A.address,
   B.buyMachineType=A.buyMachineType,
   B.buyDate=A.buyDate,
   B.buyAddress=A.buyAddress,
   B.buyPrice=A.buyPrice,
   B.customerType=A.customerType,
   B.vipCard=A.vipCard,
   B.content=A.content,
   B.email=A.email,
   B.area_id=A.area_id,
   B.area_code=A.area_code,
   B.area_name=A.area_name,
   B.importDirection=A.importDirection
  end
  else if ((SELECT ID,
    name,
    phone,
    mobile,
    address,
    buyMachineType,
    buyDate,
    buyAddress,
    buyPrice,
    customerType,
    vipCard,
    content,
    email,
    area_id,
    area_code,
    area_name,
    importDirection
   FROM tbl_customer_amt_temp A
   WHERE A.IMPORTDIRECTION=1
)A
ON (B.ID <> A.ID))
   begin
   insert tbl_customer_temp B (ID,name,
    phone,
    mobile,
    address,
    buyMachineType,
    buyDate,
    buyAddress,
    buyPrice,
    customerType,
    vipCard,
    content,
    email,
    area_id,
    area_code,
    area_name,
    importDirection)
    values (A.ID,A.name,A.phone,A.mobile,A.address,A.buyMachineType,
A.buyDate,A.buyAddress,A.buyPrice,A.customerType,A.vipCard,A.content,A.email,A.area_id,A.area_code,
    A.area_name,
   A.importDirection)
   end
麻烦帮忙看下是哪里错了
------解决方案--------------------MERGE 语句
提供了对表根据条件进行插入或者更新的能力。
如果行存在则执行UPDATE,如果不存在则执行INSERT。
避免了单独的修改。
提高了性能,更便于使用。
对于数据库应用很有益。
语法:别名AL
MERGE INTO table_name(目的表) table_alias USING (table/view/sub_query)//数据来源
(可以用子查询) alias(别名)
on(连接条件)
WHEN MATCHED THEN UPDATE SET(关键字) (修改目的表)
目的表AL.col1=原表AL.col_var1
目的表AL.col2=原表AL.col2_var2
WHEN NOT MATCHEN THEN(关键字)
INSERT (目的表AL.COL_LIST)
VALUES(原表AL.COL_VARS);(插入原表)
create table newtable_name(新表) as select * from oldtable_name(原表) where 1=0;
将原表中的结构复制到新表中,但具体的数据项不进行复制。
------解决方案--------------------CREATE PROCEDURE TEST AS  
 v_count int :=0;
 begin    
   SELECT count(1)
   into v_count
   FROM IMPORTDIRECTION  
   WHERE IMPORTDIRECTION=1;    
   if v_count>0 then      
    update tbl_customer_temp B set(  
    name,  phone, mobile, address, buyMachineType, buyDate,  
    buyAddress, buyPrice, customerType, vipCard, content,  
    email, area_id, area_code, area_name, importDirection )
    = (select A.name,A.phone,A.mobileA.address,A.buyPrice,A.buyMachineType,A.buyDate,A.buyAddress,
      A.customerType,A.vipCard,A.content,A.email,A.area_id,A.area_code,
      A.area_name,A.importDirection
       from IMPORTDIRECTION A where B.ID=A.ID)