INFORMIX IDS11支持 动态存储过程。本文通过举例的方法演示如何在INFORMIX中创建动态存储过程。
EXAMPLE 1
说明 EXECUTE IMMEDIATE 语句
可以通过参数名来动态执行不同的表
DATABASE stores_demo;
CREATE PROCEDURE create_tab (table_name CHAR(128), column_list CHAR(512))
DEFINE l_crtstmt CHAR(1024);
LET l_crtstmt = "CREATE TABLE " || table_name ||"("|| column_list || " )"; --动态语句,存放到一个变量中
EXECUTE IMMEDIATE l_crtstmt; --动态执行SQL
END PROCEDURE;
执行存储过程
EXECUTE PROCEDURE create_tab ("tmp_cust","cust_num INTEGER,cust_fname CHAR(30)");
EXAMPLE 2
说明在SPL中如何利用游标和动态语句
DATABASE stores_demo;
-- Procedure to dynamically constructs query `cust_qry' using supplied
-- table_name and returns all rows whose first n