0

例如,我有这样的代码:

...
PROCEDURE procedure1(... some parameters ...)
BEGIN
  DECLARE l_xxx VARCHAR(5);

  SET l_xxx = 'ERROR';

  IF l_xxx = 'ERROR' THEN
     -- in this section, I want to call 'foo' process below
  END IF;

  foo:BEGIN
     -- Some process
  END;
END;

我可以error:BEGIN在存储过程中调用..吗?

4

1 回答 1

1
  1. 您可以创建另一个存储过程,并调用它而不是类似 GOTO 的命令。
  2. 尝试在用户变量的帮助下使用 IF-THEN 语句来完成。

例如:

DECLARE l_xxx VARCHAR(5);

SET l_xxx = 'ERROR';
SET @a = NULL;

IF l_xxx = 'ERROR' THEN
  SET @a = 1; -- Set error flag
END IF;

IF @a IS NULL THEN
  -- Some process, when there were no errors.
END IF;

IF @a = 1 THEN
  BEGIN
  -- Some process
  END;
END IF;
于 2012-09-06T15:05:42.270 回答