绑定变量正确使用的时候,可以开发出高效、可扩展的应用程序。
绑定变量是 SQL 语句中的占位符,必须用有效值(常量)或值地址(变量)替换该语句才能成功执行。通过使用绑定变量,您可以编写一个 SQL 语句,在运行时接受输入或参数。
类似于子程序可以有参数,SQL 语句可以具有绑定变量占位符,其值在运行时提供。就像一个子程序可以被编译一次,然后用不同的参数运行多次一样,一个带有绑定变量占位符的 SQL 语句可以被硬解析一次,然后用不同的绑定变量进行软解析。
硬解析,包括优化和行源生成,是一个 CPU 密集型的操作,而且是一个不可扩展的操作,不能跟其他很多操作并行。软解析,跳过优化和行源生成直接进行执行,相同的语句通常比硬解析快得多。
尽管软解析比硬解析更有效一些,但是大量的软解析成本也是很高的。为了最大化应用的有效性和扩展性,最小化解析成本,最方便的方法是使用 PL。
示例:绑定变量示例
delimiter /
DECLARE
v_sql varchar2(2000) := '';
s_name ware.w_name%TYPE := '';
BEGIN
v_sql := 'select w_name from ware where w_id = :1';
EXECUTE IMMEDIATE v_sql INTO s_name USING '1' ;
dbms_output.put_line('w_name IS ' || s_name);
END;
/
delimiter ;