使用EXECUTE IMMEDIATE

这个方法允许应用程序接受或者构造一个动态SQL语句,然后立即用EXECUTE IMMEDIATE命令执行它。SQL语句不能是查询语句,也不能包含为输入主变量占位的占位符。它的格式如下:

EXEC SQL EXECUTE IMMEDIATE 〈动态命令〉;

例如:

EXEC SQL BEGIN DECLARE SECTION ;
char command[80] ;

...
EXEC SQL END DECLARE SECTION ;
strcpy(command, "INSERT INTO employee VALUES('E8', '蔡又黄', 3,
'杭州')");
EXEC SQL EXECUTE IMMEDIATE :command;

也可以使用如下语句:

EXEC SQL EXECUTE IMMEDIATE
"INSERT INTO employee VALUES('E8', '蔡又黄', 3, '杭州')";

这两种方式是完全一样的,不过前者更为灵活,因为它的SQL语句可以由用户输入。而后者把SQL语句硬编码到源程序中去了,它的作用和静态SQL语句没有任何区别。

使用方法1,每次执行动态SQL语句都分析相应的SQL语句。

EXECUTE IMMEDIATE的使用较为简单在这里不再举例。