I believe that you need to code an update statement as well.
-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx
[
mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of Misty Thornton
Sent: Monday, April 30, 2007 3:20 PM
To: RPG programming on the AS400 / iSeries
Subject: Stored Procedure on iSeries.
Hey All;
I am trying to create a stored procedure which will insert a record into
a
file if the record does not exist and updates the record if the record
already exists. I am only passing one parameter to the stored procedure
VARCHAR(10). My EMAILS file has only two fields, EMAIL_ID varchar(10)
and
EMAIL_DESC varchar(25). This is how I am trying to code but I keep
getting
the following error.
***********
DB21034E The command was processed as an SQL statement because it was
not a
valid Command Line Processor command. During SQL processing it
returned:
SQL0104N An unexpected token ";" was found following "E WHERE EMAIL_ID
=
em".
Expected tokens may include: "<space>". LINE NUMBER=7. SQLSTATE=42601
***********
CREATE PROCEDURE MYDB.MANAGE_EMAILS
( IN em VARCHAR(10))
SPECIFIC MYDB.MANAGE_EMAILS
DYNAMIC RESULT SETS 1
P1: BEGIN
IF EXISTS (SELECT * FROM MYDB.EMAIL WHERE EMAIL_ID = em;)
THEN
UPDATE MYDB.EMAIL
SET EMAIL_DESC= 'YYY'
WHERE EMAIL_ID = em;
ELSE
INSERT INTO MYDB.EMAIL(EMAIL_ID, EMAIL_DESC)
VALUES (em, 'YYY')
END IF;
ELSE
UPDATE MYDB.EMAIL
SET EMAIL_DESC = 'YYY'
WHERE EMAIL_ID = em;
END IF
END P1
It almost seems like I am missing something really small here. Any help
in
the right direction is much appreciated. TIA.
Kindest regards,
-Misty.
As an Amazon Associate we earn from qualifying purchases.