浅谈IBM DB2数据库如何迁移问题(7)
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 脚本
结束语
本文所展示的存储过程、UDF 以及 DB2 API 的结合证明了在从竞争的数据库迁移到 DB2 UDB 时,DB2 有能力支持创造性的、可行的功能映射解决方案。