- Rongsen.Com.Cn 版权所有 2008-2010 京ICP备08007000号 京公海网安备11010802026356号 朝阳网安编号:110105199号
- 北京黑客防线网安工作室-黑客防线网安服务器维护基地为您提供专业的
服务器维护
,企业网站维护
,网站维护
服务 - (建议采用1024×768分辨率,以达到最佳视觉效果) Powered by 黑客防线网安 ©2009-2010 www.rongsen.com.cn
作者:黑客防线网安SQL维护基地 来源:黑客防线网安SQL维护基地 浏览次数:0 |
构建例程
为了构建 C 例程(UDF 或 存储过程),必须首先对其进行预编译、编译以及链接。该过程可通过批文件 bldrtn (UNIX/LINUX 上)或 bldrtn.bat (Windows 上)自动完成,该文件包含在随 DB2 一同安装的样本中。可以在 UNIX/LINUX 上的 /sqllib/samples/c 目录或 Windows 上的
bldrtn [dbname userid password]
如果未提供 dbname,那么批文件会将之默认为 SAMPLE ,而 userid 和 password 则被默认为当前会话的用户 ID 和口令。
清单 7 演示了使用 bldrtn 批文件在 functions.sqc 文件中进行的例程构建。
清单7. 在 functions 文件上执行 buildrn
bldrtn functions
值得说明的是,可能需要对 Windows 平台上的 bldrtn 批文件进行编辑
以便在链接指令中包含 ws2_32.lib。应按照下列方法来修改该文件:
:link_step
rem Link the program.
link -debug -out:%1.dll -dll %1.obj db2api.lib ws2_32.lib -def:%1.def
在成功构建 C 例程之后,其共享库会被自动地移到 sqllib/function 目录中。
注意:
注意:构建步骤中需要导出文件 .def(WINDOWS 上)或 .exp(UNIX 上)。
注册例程
一旦构建了例程,就要在数据库中注册它们。清单 8 展示了为在数据库中注册这些例程而创建的脚本的内容。请注意,字符‘@’在此用作语句结束符:
清单8. 用于在数据库中注册例程的脚本
DROP SPECIFIC PROCEDURE truncate_table@
CREATE PROCEDURE truncate ( IN schemaName VARCHAR(130), IN tableName VARCHAR(130) )
SPECIFIC truncate_table
DYNAMIC RESULT SETS 0
MODIFIES SQL DATA
NOT DETERMINISTIC
CALLED ON NULL INPUT
LANGUAGE C
EXTERNAL NAME 'functions!truncate_table'
FENCED THREADSAFE
INHERIT SPECIAL REGISTERS
PARAMETER STYLE SQL
我要申请本站:N点 | 黑客防线官网 | |
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479 |