使用IBM DB2例程简化迁移的步骤(三)

日期: 2008-07-28 作者:Anna 来源:TechTarget中国 英文

  单4.演示了HOST_NAME函数的执行。可以在“下载”小节中找到该脚本host_name_example.db2的源代码。


  清单4.测试函数HOST_NAME( )


  下面这个例子测试演示了用以获取本地连接主机名的函数的执行。


  在该场景中DB2数据库驻留在一个本地AIX机器上。


  地址127.0.0.1 在 /etc/hosts文件中被映射到计算机名demoaix







:/* connect to the local database */
          connect to sample
          Database Connection Information
          Database server = DB2/6000 8.1.2
          SQL authorization ID = DB2INST1
          Local database alias = SAMPLE
          /* &#101xecute the host_name function */
          values host_name()”
          1
          ————————————————
          demoaix
          1 record(s) selected. 

  下一个例子测试演示了远程连接上的函数的执行。


  在该场景中,DB2数据库与上面一样驻留在同一 AIX 机器上。


  到AIX上数据库的连接是由一个Windows 2000客户机建立的;


  该客户机的名字为mycomputer。    







/* The database samplaix is an alias for the SAMPLE database on AIX */
          connect to samplaix
          Database Connection Information
          Database server = DB2/6000 8.1.2
          SQL authorization ID = DB2INST1
          Local database alias = SAMPLAIX
          /* &#101xecute the host_name UDF against the remote database 钬?
          it returns the name of the computer of the client connection */
          values host_name()
          1
          ————————————————
          mycomputer 



  通过触发器或用户定义函数调用存储过程的UDF


  当迁移到DB2时,碰到的另一个普遍问题就是其他RDBMS可以通过触发器或函数调用存储过程。虽然DB2已经承诺在未来版本中包含该功能,但是我们将展示如何使用DB2的当前版本来实现该功能,即通过创建一个将对存储过程发出调用的UDF来实现。


  清单5.中展示了用于该目的的用户定义函数CALL_PROCEDURE的签名。


  清单5.用户定义函数CALL_PROCEDURE的签名         







 >>–CALL_PROCEDURE–(–procedure_name–,–parameter_list–,—–>
        >—–database_name–,–user_name–,–password–)————->< 


  VARchar(257)类型的参数procedure_name指定要被调用的存储过程的全限定名—— 在传递多个参数时,要用逗号进行分隔。该字符串将被粘贴到用于调用过程的CALL语句中,因此其语法需要符合SQL CALL语句的要求。VARchar(8)类型的参数database_name指定要执行该存储过程的数据库的别名。存储过程不一定要驻留在同一数据库中。VARchar(128) 类型的参数user_name和VARchar(200)类型的参数password用于确定连接数据库以及执行该过程时所使用的注册信息。


  该函数调用当前数据库中的存储过程。它建立新的连接之后就通过过程名和作为输入参数而提供的参数来执行CALL语句。该UDF返回0(零)表明CALL语句(以及相应的CONNECT和CONNECT RESET语句)执行成功。否则,将返回DB2命令行处理器(Command Line Processor,CLP)的返回码和一条提供了更多信息的出错消息。清单6演示了函数 create_PROCEDURE的执行。可以在“下载”小节中找到该脚本(trig_calls_proc.db2)的源代码。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

相关推荐