Sybase ASE 15.7 MERGE Behavior
If you have a MERGE statement with only a DELETE action, Sybase ASE 15.7 throws the following exception:
Caused by: com.sybase.jdbc3.jdbc.SybSQLException: Incomplete MERGE statement
SQL State = ZZZZZ SQL Error Code = 3640
at com.sybase.jdbc3.tds.Tds.a(Unknown Source)
The workaround is to add a second, “placeholder” action.
For example, the following fails:
MERGE INTO /users/composite/test/sources/mergeSyntax/sybase15/mergedb/msbe002/STATION_COPY USING /users/composite/test/sources/mergeSyntax/sybase15/mergedb/msbe002/STATION ON(STATION_COPY.ID = STATION.ID) AND STATION.CITY='Denver' WHEN MATCHED THEN DELETE
But the following succeeds:
MERGE INTO /users/composite/test/sources/mergeSyntax/sybase15/mergedb/msbe002/STATION_COPY USING /users/composite/test/sources/mergeSyntax/sybase15/mergedb/msbe002/STATION ON (STATION_COPY.ID = STATION.ID) AND STATION.CITY='Denver'WHEN MATCHED THEN DELETE
WHEN NOT MATCHED AND 1<>1 THEN INSERT (ID, MONTHS) VALUES (1, 2)