不可跟在下列
SQL 语句之后执行 EXECUTE IMMEDIATE 语句。
- CLOSE
- CONNECT
- DECLARE
- DISCONNECT
- EXECUTE
- EXECUTE FUNCTION
- EXECUTE PROCEDURE
- FETCH
- FLUSH
- FREE
- GET DESCRIPTOR
- GET DIAGNOSTICS
- OPEN
- OUTPUT
- PREPARE
- PUT
- SELECT
- SET AUTOFREE
- SET CONNECTION
- SET DEFERRED_PREPARE
- SET DESCRIPTOR
- WHENEVER
对于 EXECUTE PROCEDURE,该限制仅引用与返回一个或多个值的调用。
EXECUTE IMMEDIATE 支持作为语句文本的唯一的 SELECT 语句形式为 SELECT ... INTO TEMP table。要了解 SELECT 语句中 INTO TEMP table 子句的语法,请参阅 INTO table 子句。
此外,ESQL/C 不可使用 EXECUTE IMMEDIATE 语句来执行包含由分号分隔的多个 SQL 语句的文本中的下列语句:
- CLOSE DATABASE
- CREATE DATABASE
- DATABASE
- DROP DATABASE
- SELECT(SELECT INTO TEMP 除外)
EXECUTE IMMEDIATE 语句不可处理包括问号(?)符号作为占位符的 SQL 语句文本。请使用 PREPARE 语句和或者游标或者 EXECUTE 语句来执行动态构建的
SELECT 语句。
(在 SPL 例程中,EXECUTE IMMEDIATE 语句仅可执行单个 SQL 语句。如果紧跟在 IMMEDIATE 关键字后的参数赋值为多个 SQL 语句的列表,或为 NULL 值,或为非有效 SQL 语句的文本,则数据库服务器发出运行时错误。)