|
|
A Label identifies an SQL statement that can be referred to within the
procedure.
Procedures only
Label:Statement
- Label
is an integer or a name which conforms to the SQL
syntax rules for a basic name.
- Statement
is the statement within a procedure to be labeled.
A label may appear only at the start of a
ProcedureStatement that is not part of a compound
statement. It cannot appear with a local variable declaration or a
WHENEVER directive.
Labels within a procedure should be unique.
A label can only be referred to from a GOTO statement and
WHENEVER...GOTO directive.
Anyone can use this statement.
CREATE PROCEDURE Process19 (param1 integer, param2 float) AS
BEGIN
DECLARE value1 integer;
WHENEVER sqlerror GOTO errorexit;
DECLARE cursor1 CURSOR FOR
SELECT column1
FROM table1
WHERE column1 > :param1;
OPEN cursor1;
WHILE ::sqlcode < > 100 do
FETCH cursor1 into :value1;
IF ::sqlcode = 100 THEN
GOTO loopexit;
ENDIF;
INSERT INTO table2
VALUES (:value1, :param2);
UPDATE table3 SET
column1 = CURRENT_DATE WHERE column2 = :value1;
IF ::sqlerrd2 < 1 THEN
INSERT INTO table3
VALUES (CURRENT_DATE, :value1);
ENDIF;
ENDWHILE;
loopexit:
CLOSE cursor1;
RETURN 0;
errorexit:
PRINT 'Procedure terminated due to error:';
PRINT ::sqlcode;
END;
EXECUTE PROCEDURE Process19;
|