创建和使用 SPL 例程 / 执行例程 |
通过在调用例程内构建被调用的例程的名称,动态的例程名称规范允许您从另一 SPL 例程执行 SPL 例程。动态的例程名称规范简化您编写调用另一 SPL 例程的 SPL 例程的方式,直到运行时才能知道另一例程的名称。数据库服务器允许您在 EXECUTE PROCEDURE 或 EXECUTE FUNCTION 语句中指定 SPL 变量,而不是 SPL 例程的显式的名称。
图: 动态的例程名称规范。
CREATE PROCEDURE company_proc ( no_of_items INT, itm_quantity SMALLINT, sale_amount MONEY, customer VARCHAR(50), sales_person VARCHAR(30) ) DEFINE salesperson_proc VARCHAR(60); -- 更新公司表 INSERT INTO company_tbl VALUES (no_of_items, itm_quantity, sale_amount, customer, sales_person); -- 生成变量 salesperson_proc 的过程名称 LET salesperson_proc = sales_person || "." || "tbl" || current_month || "_" || current_year || "_proc" ; -- 执行 salesperson_proc 变量指定的 -- SPL 过程 EXECUTE PROCEDURE salesperson_proc (no_of_items, itm_quantity, sale_amount, customer) END PROCEDURE;
因此,如果名为 Bill 的销售人员在 1988 年 7 月完成一笔销售,则 company_proc 在 company_tbl 中插入一记录,并执行 SPL 过程 bill.tbl07_1998_proc,更新包含个别销售人员的每月销售情况的较小的表。