如何从IBM命令行运行存储过程?

时间:2016-09-05 12:52:00

标签: database stored-procedures db2

我正在尝试从IBM AS400命令行中找到一种运行存储过程的方法,以便我可以将其输入ADDJOBSCDE条目并安排它每晚运行。我觉得这很简单 - 错! :)

我的程序已创建,并且不需要输入参数。它在库JENNYB中,它被称为P_CD020AUDIT。我可以从“运行SQL脚本”中调用它没问题,它运行成功。但是我不希望每天凌晨1点都这样做,所以我需要一种方法来安排它。

我在这里发现了这篇文章: http://archive.midrange.com/midrange-l/200907/msg00293.html

  
      
  1. 创建一个SQL源文件(只需创建一次),用于容纳源成员
  2.         

    CRTSRCPF文件(MYLIB / QSQLSRC)文本('SQL脚本')   2.使用STRSEU创建SQL源成员,可以在其中运行SQL语句。例如,“CALL MYLIB.MYSTOREDPROCEDURE(p1,p2)”。这里,   MYSTOREDPROCEDURE是我想安排作为工作的sp。

         
        
    1. 使用WRKJOBSCDE / ADDJOBSCDE命令添加新作业
    2.         

      ADDJOBSCDE CMD(RUNSQLSTM SRCFILE(IDIGPROC / QSQLSRC)SRCMBR(aSRCmember))

           

      谢谢,颜

但是当我输入命令STRSEU时,我得到'命令中发现错误',所以我想我们的服务器上可能没有安装这些东西。

我看到有人说你可以按照以下命令编辑源文件:

CRTSRCPF文件(MYLIB / SQLSRC)

EDTF文件(MYLIB / SQLSRC)MBR(CALLMOFO)

所以我已经完成了这个(并在我的文件中创建了成员),但我不确定我在EDTF中看到的是什么 - 我只是想输入我的SQL脚本,但我甚至都不能设法创建一个新的线。

EDTF

有没有人能提供如何从命令行运行简单的,无输入参数的存储SQL过程的白痴指南?提前谢谢..

JennyB

2 个答案:

答案 0 :(得分:1)

FWiW,除了另一个答案中的Run SQL语句(RUNSQLSTM):
•相对较新版本的IBM i OS将具有Run SQL(RUNSQL)命令,这对于一个语句来说简单得多:
RUNSQL 'call jennyb.p_cd020audit'
•大多数版本还通过QSHELL具有DB2命令行界面
qsh cmd('db2 "call jennyb.p_cd020audit"')
•还有REXX SQL;省略了一个完整的例子 - 如果需要,请在评论中询问一个例子:
STRREXPRC … CMDENV(*EXECSQL)

答案 1 :(得分:0)

想出来!!哪种方式让我想起了关于猴子和打字机以及莎士比亚作品的说法,最终得到了很多错误的开始......以防万一我帮助了其他人:

创建了一个名为“P_CD020AUDIT”的存储过程。

输入以下命令:

CRTSRCPF文件(JENNYB / QSQLSRC)文本('SQL脚本')

ADDPFM文件(JENNYB / QSQLSRC)MBR(CD020_A)

EDTF文件(JENNYB / QSQLSRC)

在文件编辑器中,我刚输入'call jennyb.p_cd020audit'(不带引号)并保存文件。

然后从命令行我尝试了这个:

RUNSQLSTM SRCFILE(JENNYB / QSQLSRC)SRCMBR(CD020_A)

而且,哈利路亚,它有效。所以我用ADDJOBSCDE创建了一个作业计划条目,并再次使用此命令 - RUNSQLSTM SRCFILE(JENNYB / QSQLSRC)SRCMBR(CD020_A) - 当我提交它时,它运行我的存储过程。我希望这可以从一个沮丧的谷歌搜索和错误消息的早晨拯救其他人..;)