在编译 EXECUTE IMMEDIATE 语句时,如果 GBase 8s ESQL/C 分析器发现语法错误,则发出编译错误,并不产生可执行的 UDR,直到语法正确并编译。如果分析器接受 EXECUTE IMMEDIATE 语法且 UDR 编译成功,但在执行 EXECUTE IMMEDIATE 语句时在调用 UDR 期间发生例外,则数据库服务器在运行时发出错误。WHENEVER 语句可捕获运行时错误,在 UDR 的程序逻辑中一些其他例外处理机制也可捕获。
对于用 SPL 语言写的例程,在运行时为 SQL 表达式赋值,而不是在编译或优化例程时。如果跟在 IMMEDIATE 关键字之后的表达式指定无效的 SQL 语句文本,则 GBase 8s 发出运行时例外,而不是编译错误。在 SPL 例程中的任何运行时错误条件之后,程序控制转到 ON EXCEPTION 语句块(如果定义的话);否则,UDR 的执行异常终止,并返回给调用上下文一个错误。要获取关于如何在 SPL 例程中处理运行时错误的信息,请参阅 SPL 语句 ON EXCEPTION 的描述。(另请参阅内建 SQL 函数 SQLCODE。)