Reputation:
I get the following error:
PLS-00103: Encountered the symbol "P_INSERT_STMFRD_REL_RECORDS" when expecting one of the following: if
Anyone a idea what i am missing?
PROCEDURE p_insert_stmfrd_rel_records(DeployDate DATE, LogNO NUMBER, InstanceNO NUMBER)
IS
begin
IF EXISTS(SELECT 1 FROM ADM_DEPLOYMENTLOGDETAIL WHERE INSTANCENO = InstanceNO AND LOGNO = LogNO AND DEPLOYDATE IS NOT NULL) THEN
BEGIN
UPDATE ADM_DEPLOYMENTLOGDETAIL SET DEPLOYDATE = DeployDate WHERE INSTANCENO = InstanceNO AND LOGNO = LogNO;
END;
ELSE
BEGIN
INSERT INTO ADM_DEPLOYMENTLOGDETAIL(
DEPLOYDATE,
STATUSID,
CANCELEDIND,
INSTANCENO)
VALUES(
DeployDate,
'D',
'N',
InstanceNO);
END;
END p_insert_stmfrd_rel_records; <--- Error occurs on this line.
Upvotes: 1
Views: 79
Reputation: 22969
You are missing an END IF
.
Also you can not use EXISTS
this way; you probably need:
PROCEDURE p_insert_stmfrd_rel_records(
DeployDate DATE,
LogNO NUMBER,
InstanceNO NUMBER
) IS
vNum number;
BEGIN
select count(1)
into vNum
FROM ADM_DEPLOYMENTLOGDETAIL
WHERE INSTANCENO = InstanceNO
AND LOGNO = LogNO
AND DEPLOYDATE IS NOT NULL;
IF vNum > 0
THEN
BEGIN
UPDATE ADM_DEPLOYMENTLOGDETAIL
SET DEPLOYDATE = DeployDate
WHERE INSTANCENO = InstanceNO
AND LOGNO = LogNO;
END;
ELSE
BEGIN
INSERT INTO ADM_DEPLOYMENTLOGDETAIL(
DEPLOYDATE,
STATUSID,
CANCELEDIND,
INSTANCENO
)
VALUES (
DeployDate,
'D',
'N',
InstanceNO
);
END;
END IF;
END p_insert_stmfrd_rel_records;
Upvotes: 1