PROGRAM TYPE SUB
NO DBINFO
@
DROP SPECIFIC FUNCTION clIEnt_host_name@
CREATE FUNCTION host_name ( )
RETURNS VARCHAR(128)
SPECIFIC clIEnt_host_name
EXTERNAL NAME 'functions!host_name'
LANGUAGE C
PARAMETER STYLE SQL
DETERMINISTIC
FENCED
NOT THREADSAFE
RETURNS NULL ON NULL INPUT
NO SQL
NO EXTERNAL ACTION
NO SCRATCHPAD
NO FINAL CALL
ALLOW PARALLEL
DBINFO
@
DROP FUNCTION call_procedure@
CREATE FUNCTION call_procedure ( procedure VARCHAR(257),
parameters VARCHAR(30000), databaseName VARCHAR(8),
userName VARCHAR(128), passWord VARCHAR(200) )
RETURNS INTEGER
SPECIFIC call_stp
EXTERNAL NAME 'functions!call_procedure'
LANGUAGE C
PARAMETER STYLE SQL
NOT DETERMINISTIC
NOT FENCED
THREADSAFE
CALLED ON NULL INPUT
NO SQL
EXTERNAL ACTION
NO SCRATCHPAD
NO FINAL CALL
DISALLOW PARALLEL
NO DBINFO
@
在文本編輯器中創建好這個腳本之後,就將它保存在一個叫做 functions.db2的文件中,可在“下載”小節中找到該文件。該過程的最後一步是執行該腳本。清單 9 展示了針對數據庫執行該腳本所需的命令。
清單9. 執行 functions.db2 腳本
/* connect to the database */
db2 connect to SAMPLE
/* specify the terminating character (-td@), verbose output (-v), and the */
/* file name (f functions.db2) for script execution*/
db2 -td@ -vf functions.db2
結束語
本文所展示的存儲過程、UDF 以及 DB2 API 的結合證明了在從競爭的數據庫遷移到 DB2 UDB 時,DB2 有能力支持創造性的、可行的功能映射解決方案。