HPL/SQL is included to Apache Hive since version 2.0
You can use DECLARE HANDLER statement to define one or more PL/HQL statements to execute when a condition occurs.
DECLARE [CONTINUE | EXIT] HANDLER FOR [SQLEXCEPTION | NOT FOUND | user_condition] code_block;
|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|
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.