使用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的使用较为简单在这里不再举例。