WEB开发网
开发学院数据库DB2 使用IBM DB2例程简化迁移的步骤 阅读

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

 2008-09-03 16:27:48 来源:WEB开发网   
核心提示: 该函数调用当前数据库中的存储过程,它建立新的连接之后就通过过程名和作为输入参数而提供的参数来执行CALL语句,使用IBM DB2例程简化迁移的步骤(5),该UDF返回0(零)表明CALL语句(以及相应的CONNECT和CONNECT RESET语句)执行成功,否则,然后,过程将会将num列

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

清单6.测试函数create_PROCEDURE( )

下面这个例子测试演示了从触发器调用包含一个参数的存储过程。

在该示例中,我们创建t1和t2这两个表,带有一个输入参数(p)的过程(abc)以及一个触发器(ins)。在执行触发器时,它将调用该过程。然后,过程将会将num列的新值(NEW.coll)插入到表t1中。这可以通过以下操作来测试:在表t2上执行插入后对t1发出select来检验该表内容 —— 进而检验该过程是否成功执行。     

createtablet1(col1int)
      DB20000ITheSQLcommandcompletedsuccessfully.
      createtablet2(col1int)
      DB20000ITheSQLcommandcompletedsuccessfully.
      createprocedureabc(inpint)begininsertintot1values(p);end
      DB20000ITheSQLcommandcompletedsuccessfully.
      createtriggerinsafterinsertont2referencingNEWasnewforEACHROWMODE
      DB2SQLBEGINATOMICvalues(call_procedure(’DB2INST1.ABC’,char(new.col1*2),
      ’SAMPLE’,’DB2INST1’,’db2inst1’));END
      DB20000ITheSQLcommandcompletedsuccessfully.
      insertintot2values20
      DB20000ITheSQLcommandcompletedsuccessfully.
      /*validatethatthetriggerhasfired-itshouldupdatet1*/
      select*fromt1
      COL1
      -----------
      40
      1record(s)selected.

上一页  1 2 3 4 5 6  下一页

Tags:使用 IBM DB

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接