将模式名称作为参数传递给db2 - unix

时间:2014-12-03 07:05:56

标签: db2 db2-luw

我在架构A上的db2(luw)中有一个存储过程,如下所示。

CREATE PROCEDURE A.GET_TOTAL (IN ID CHARACTER(23))
    BEGIN
        DECLARE CURSOR1 CURSOR WITH HOLD WITH RETURN TO CLIENT FOR  
        SELECT * FROM B.employee e where e.id=ID
    END

给定sproc存在于模式" A"在另一个模式上运行查询" B"。该另一个模式名称B可以基于应用程序逻辑而改变。如何将模式名称作为参数传递给此sproc?

1 个答案:

答案 0 :(得分:2)

首先,我认为存储过程不起作用,因为未在游标或预准备语句中定义select语句。

如果要在存储过程中执行动态SQL,则需要在stmt中定义,然后准备并执行它。

假设您将模式名称作为参数传递;如果要更改架构,可以动态执行“设置当前架构”或在查询中连接架构名称。

有关详细信息:http://www.toadworld.com/platforms/ibmdb2/w/wiki/7461.prepare-execute-and-parameter-markers.aspx