====== DECLARE HANDLER Statement - PL/HQL ======
You can use DECLARE HANDLER statement to define one or more PL/HQL statements to execute when a condition occurs.
**Syntax**:
DECLARE [CONTINUE | EXIT] HANDLER FOR
[SQLEXCEPTION | NOT FOUND | user_condition] code_block;
**Description:**
| CONTINUE | When the handler completes, control is returned to PL/HQL statement following the statement that raised the condition |
| EXIT | After the handler completes, control is returned to the end of the block that declared the handler |
| //code_block// | PL/HQL statement(s) to execute when the specified condition occurs |
**Examples:**
DECLARE name VARCHAR(100);
DECLARE no_rows INT DEFAULT 0;
DECLARE CONTINUE HANDLER FOR NOT FOUND
SET no_rows = 1;
OPEN cur FOR 'SELECT name FROM db.orders';
FETCH cur INTO name;
WHILE no_rows = 0 THEN
PRINT id;
FETCH cur INTO name;
END WHILE;
CLOSE cur;
**Compatibility:** IBM DB2, Teradata and MySQL.
**Version**:
* PL/HQL 0.3.1 - User-defined condition supported
* PL/HQL 0.01 - Introduced
**See also:**
* [[error-handling|Error Handling]]
* [[declare-condition|DECLARE CONDITION]]
* [[sqlcode|SQLCODE]]
* [[sqlstate|SQLSTATE]]
* [[get-diagnostics|GET DIAGNOSTICS]]
* [[signal|SIGNAL]]
* [[resignal|RESIGNAL]]