更新时间:2026-10-21 GMT+08:00
执行没有结果集的语句
EXECUTE IMMEDIATE指令用于在运行期直接解析并立即执行存储在字符串宿主变量中的动态SQL语句。该指令适用于不返回数据行集、且不需要绑定参数的动态操作,例如DDL(如CREATE TABLE、DROP INDEX)、DCL(如GRANT)以及不带参数的简单DML语句(如INSERT、UPDATE、DELETE)。
需要特别注意的是,EXECUTE IMMEDIATE严禁用于执行SELECT等检索数据的语句(若需执行动态查询,请参见执行带有结果集的语句);同时,其接收的动态SQL字符串中不能包含任何参数占位符(若需绑定输入参数,请参见执行具有输入参数的语句)。执行EXECUTE IMMEDIATE命令示例如下:
EXEC SQL BEGIN DECLARE SECTION; const char *stmt = "CREATE TABLE test1 (id int, name varchar(50));"; EXEC SQL END DECLARE SECTION; ... /* 直接解析并立即执行动态SQL字符串 */ EXEC SQL EXECUTE IMMEDIATE :stmt; /* 提交事务使结构变更生效 */ EXEC SQL COMMIT;
父主题: 执行动态SQL语句