この場合、以下のようにMERGEステートメントを使用する必要があります。
DECLARE
l_date DATE:=TO_DATE('01/04/2017','DD/MM/YYYY');
BEGIN
LOOP
EXECUTE IMMEDIATE 'MERGE INTO EMPSHIFT E
USING SCHEDULEEMPLOYEES S
ON (S.EMPLOYEEID=E.EMPLOYEEID AND S.DAYDATE=TO_DATE('''||TO_CHAR(l_date)||''',''DD/MM/YYYY''))
WHEN MATCHED
THEN UPDATE SET E."'||TO_CHAR(l_date)||'"=S.SHIFT';
l_date:=l_date+1;
EXIT
WHEN l_date>TO_DATE('30/04/2017','DD/MM/YYYY');
END LOOP;
END;
レコードを更新するとおっしゃいましたが、不足しているレコードを挿入したい場合(EMPSHIFTテーブルにEMPLOYEEIDがない場合)、 merge_insert_clause