使用PREPARE 和EXECUTE¶
这种方法允许应用程序接受或者构建一个动态SQL语句,然后用PREPARE和EXECUTE来处理它。SQL语句必须不是查询语句。在编译时,必须已经知道输入主变量的占位符数目和输入主变量的数据类型。
这里,PREPARE和EXECUTE语句相当于把一步EXECUTE IMMEDIATE分成两步做,因为EXECUTE允许输入主变量值,所以这种方法可以使用输入主变量,这是相对于第一种方法的优势之一。另外,第二种方法的优势还在于它对SQL语句只作一次语法分析(PREPARE),但可以执行多次。这样,使用PREPARE和EXECUTE时,SQL语句的执行效率就比使用EXECUTEIMMDIATE时要高。不仅如此,在每次用EXECUTE执行SQL语句前都可以根据需要给输入主变量赋不同的值,对于已经准备的SQL语句做不同的配置,这样,就提高了程序的灵活性。