如何在IBM System i Access for Windows GUI工具中调用存储过程

时间:2010-01-22 17:13:27

标签: stored-procedures db2 ibm-midrange

我想测试在AS400系统上运行的DB2存储过程。

我安装了IBM System i Access for Windows,可以针对DB2数据库运行SQL命令。

我的问题是:执行存储过程的语法是什么,该存储过程接收参数并将结果作为输出参数返回并将值打印到屏幕上?

只是为了澄清:我不是问如何在代码中调用proc。我想执行proc并在gui工具中查看结果(类似于SQL Enterprise Manager)。

3 个答案:

答案 0 :(得分:23)

使用关键字call并传入参数。

call myStoredProc(parm1, parm2, ?);

有关详细信息,请参阅此处http://www.ibm.com/developerworks/data/library/techarticle/dm-0503melnyk/。有趣的部分是图5.使用Command Editor调用SQL过程

答案 1 :(得分:7)

你想要什么是可能的。我自己做了很多次。不幸的是,我现在不在办公室,所以它一定是我的头顶。

  1. 启动System i Access
  2. 转到iSeries图标并登录存储过程所在的图标
  3. 转到数据库图标并连接到正确的图标(您只有一个本地,可能还有一个或多个遥控器)
  4. 只有这样,您才会在屏幕底部看到“运行SQL脚本”选项
  5. 启动该选项,您将看到一个SQL编辑器(顶部的编辑器,底部的查看器/消息)
  6. 请记住,您已连接到正确的iSeries,但您的JDBC请求将获得您的连接的userprofile的* LIBL。因此,您必须知道存储过程的模式(iseries库)
  7. 输入“致电YOURSCHEMA.YOURSTOREDPROCEDURE(?,?);”并使用菜单或快捷方式运行该语句。请注意 - 根据您的JDBC设置(请参阅菜单) - 正确的语法可能是“/”而不是“。”。另请注意,您可以使用值替换第一个问号。
  8. 另外请注意,

    • 在iAccess中,在每个模式下,您将看到表格,视图等的图标。还提供了存储过程的图标。你会在那里看到你的SP。使用选项查看定义等。此信息包括有关参数的详细信息
    • 如果要在iSeries上检查,请使用系统目录(也可以从SQL编辑器中完成)“select * from qsys2.sysprocedures where procedure_name(抱歉,不确定此列的名称是否正确)现在)='YOURSTOREDPROCEDURE';“

    非常重要:我无法在iSeries本身上使用SQL编辑器(STRSQL)测试SP。只有iAccess SQL编辑器才能正常工作。

答案 2 :(得分:0)

您应该能够像这样运行SP:

DECLARE  
 usr_in  YOUR_TABLE.YOUR_COLM%TYPE; --Gets the correct type by looking at column type
 app_in  YOUR_TABLE.YOUR_OTHER_COLM%TYPE;

BEGIN
 usr_in:='some value';
 app_in:='another_value';

 YOUR_SP_NAME(usr_in, app_in);  
END;  

或者您可以使用EXECUTE,但是它不能动态准备(不能在Java中运行),我认为还有其他缺点。

EXECUTE myStoredProc(parm1, parm2, ?);