query_data() ... EXEC SQL WHENEVER NOT FOUND GO TO missing;
... EXEC SQL fetch lname into :lname; ... missing: printf("No Customers Found\n");
在 WHENEVER GOTO 语句的作用域内,您必须在包含 SQL 语句的每一例程中定义打了标签的语句。如果您的程序包含多个用户定义的函数,则您可能需要包括打了标签的语句及其在每一函数中的代码。
如果预处理器在 WHENEVER ... GOTO 语句的作用域内遇到 SQL 语句,但在没有指定的标签的例程内,则预处理器试图插入与该打了标签的语句相关联的代码,但当它不可找到该标签时,会生成错误。
要纠正此错误,或在每一 UDR 中放置一个带有相同的标签名称的打了标签的语句,或发出另一 WHENEVER 语句来重置该错误条件,或使用 CALL 子句来调用单独的函数。