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

Stored procedures 如何在IBM System i Access for Windows GUI工具中调用存储过程,stored-procedures,db2,ibm-midrange,Stored Procedures,Db2,Ibm Midrange,我想测试一个在AS400系统上运行的DB2存储过程 我安装了IBM System I Access for Windows,可以对DB2数据库运行SQL命令 我的问题是:执行接收参数并返回结果作为输出参数并将值打印到屏幕上的存储过程的语法是什么 澄清一下:我不是在问如何在代码中调用proc。我希望执行该过程并在gui工具(类似于SQL Enterprise Manager)中查看结果。使用关键字调用并传入参数 call myStoredProc(parm1, parm2, ?); 有关更多详细

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

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

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


澄清一下:我不是在问如何在代码中调用proc。我希望执行该过程并在gui工具(类似于SQL Enterprise Manager)中查看结果。

使用关键字
调用
并传入参数

call myStoredProc(parm1, parm2, ?);

有关更多详细信息,请参见此处。有趣的部分是图5。使用命令编辑器调用SQL过程是可能的。我自己做过很多次。不幸的是,我现在不在办公室,所以这一定是我的想法

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

    • 在iAccess中,在每个模式下,您将看到表、视图等的图标。还提供了存储过程的图标。您将在那里看到您的SP。使用这些选项可以查看定义等。此信息包括有关参数的详细信息
    • 如果您想在iSeries上检查这一点,请使用系统目录(也可以从SQL编辑器中执行此操作)和“从qsys2.sysprocedures中选择*from procedure_procedure_name(对不起,现在不确定此列的名称)='YourStoredProcess';”

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

    您应该能够像这样运行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, ?);
    

    谢谢-我是DB2新手,三周来一直在努力解决这个问题。我没想到要用?(正试图像在SQL Server中一样使用declare变量)。
    是一个输出参数downvote,因为没有解释,链接也没有谈到SPs。如何获取返回值?@PhilipRego您是否查看了图5及其前面的段落?它特别告诉您如何从GUI工具调用存储过程。大多数人甚至怀疑能否访问该UI工具。如果没有用户界面,你不能那样称呼他们。您需要声明变量。@PhilipRego如果您有一个完全许可的IBM System i(有时称为iSeries或AS400),您也有可能在您的系统上安装IBM System i Access for Windows。如果您不喜欢该工具,您可以随时从IBM网页下载IBM Data Studio(免费工具)。该工具能够连接到iSeries。