Please use the below MERGE satement.
Here replace IN_APPLICATION_ID with INT(1)
IN_SECURITY_OBJECT_TYPE_ID with INT(13)
IN_OBJECT_NAME with CHAR('AuditTrail')
IN_OBJECT_DESCRIPTION with CHAR('AuditTrail screens')
MERGE INTO SECURITY_OBJECT AS A
USING ( SELECT IN_APPLICATION_ID AS APPLICATION_ID
,IN_SECURITY_OBJECT_TYPE_ID AS SECURITY_OBJECT_TYPE_ID
,IN_OBJECT_NAME AS OBJECT_NAME
,IN_OBJECT_DESCRIPTION AS OBJECT_DESCRIPTION
FROM SYSIBM.SYSDUMMY1
) AS TEMP
ON A.APPLICATION_ID = TEMP.APPLICATION_ID -- Assumed that APPLICATION_ID is the primary key
WHEN MATCHED THEN
SIGNAL SQLSTATE '23505' SET MESSAGE_TEXT = 'Primary Key constraint voilation'
WHEN NOT MATCHED AND OBJECT_NAME <> 'CUSTOMER' AND OBJECT_NAME <> 'EMPLOYEE' THEN
INSERT ( APPLICATION_ID
,SECURITY_OBJECT_TYPE_ID
,OBJECT_NAME
,OBJECT_DESCRIPTION)
VALUES ( TEMP.APPLICATION_ID
,TEMP.SECURITY_OBJECT_TYPE_ID
,TEMP.OBJECT_NAME
,TEMP.OBJECT_DESCRIPTION )
WHEN NOT MATCHED AND (OBJECT_NAME = 'CUSTOMER' OR OBJECT_NAME = 'EMPLOYEE') THEN
SIGNAL SQLSTATE ’70001’ SET MESSAGE_TEXT = 'Record already exist in the table';
It is better to write a procedure with the above code and call the procedure in your script.
Thanks,
Nagaraj