Stored procedures 在DB2中创建存储过程

Stored procedures 在DB2中创建存储过程,stored-procedures,db2,Stored Procedures,Db2,我试图在db2中创建一个存储过程,如下所示: CREATE PROCEDURE MIS.TEST_PROC1 (IN ID INT) DYNAMIC RESULT SETS 1 P1: BEGIN -- Declare cursor DECLARE cursor1 CURSOR WITH RETURN FOR SELECT REM FROM MIS.BOOKING; -- Cursor left open for client application OPEN

我试图在db2中创建一个存储过程,如下所示:

CREATE PROCEDURE MIS.TEST_PROC1 (IN ID INT) 
DYNAMIC RESULT SETS 1
P1: BEGIN
-- Declare cursor
DECLARE cursor1 CURSOR WITH RETURN FOR
    SELECT REM
    FROM MIS.BOOKING;
     -- Cursor left open for client application
    OPEN cursor1;
    END P1;
但它会抛出如下所示的错误

ILLEGAL SYMBOL "<END-OF-STATEMENT>". SOME SYMBOLS THAT MIGHT BE LEGAL ARE:. SQLCODE=-104, SQLSTATE=42601, DRIVER=3.66.46
非法符号“”。某些可能合法的符号为:。SQLCODE=-104,SQLSTATE=42601,DRIVER=3.66.46
在DataStudio中,它从“P1:BEGIN”行本身开始显示错误。 必须在IBM Data Studio 4.1中创建此过程
任何人都可以检查我是否遗漏了这篇文章中的任何内容吗?

您在DataStudio第行收到错误的原因
P1:BEGIN
是指您可能正在尝试从SQL编辑器创建SP 而不是从例程编辑器创建它

以下是您应该做的:

  • 从数据源资源管理器连接到数据库
  • 从数据项目资源管理器中,使用从DSE连接的连接创建新的数据开发项目
  • 现在在项目下,右键单击存储过程,然后单击新建 使用任何模板或只取默认值,然后您将看到一个新的例程编辑器打开
  • 我测试了这个简单的代码:

    CREATE PROCEDURE db2inst1.TEST_PROC1 (IN ID INT) 
    DYNAMIC RESULT SETS 1
    P1: BEGIN
    -- Declare cursor
    DECLARE cursor1 CURSOR WITH RETURN FOR
        SELECT NAME
        FROM SYSIBM.SYSTABLES;
         -- Cursor left open for client application
        OPEN cursor1;
    END P1
    
    注意:您不需要
    在P1的末尾


    现在,通过单击例程编辑器右上角Save按钮旁边的deploy图标,将其部署到SP到db2。

    在DataStudio第行中出现错误的原因
    P1:BEGIN
    是指您可能正在尝试从SQL编辑器创建SP 而不是从例程编辑器创建它

    以下是您应该做的:

  • 从数据源资源管理器连接到数据库
  • 从数据项目资源管理器中,使用从DSE连接的连接创建新的数据开发项目
  • 现在在项目下,右键单击存储过程,然后单击新建 使用任何模板或只取默认值,然后您将看到一个新的例程编辑器打开
  • 我测试了这个简单的代码:

    CREATE PROCEDURE db2inst1.TEST_PROC1 (IN ID INT) 
    DYNAMIC RESULT SETS 1
    P1: BEGIN
    -- Declare cursor
    DECLARE cursor1 CURSOR WITH RETURN FOR
        SELECT NAME
        FROM SYSIBM.SYSTABLES;
         -- Cursor left open for client application
        OPEN cursor1;
    END P1
    
    注意:您不需要
    在P1的末尾


    现在,通过单击例程编辑器右上角Save按钮旁边的deploy图标,将其部署到SP到db2。

    了解平台/版本可能会有所帮助,但我90%确定您根本不需要
    P1
    (或冒号)。它的可能副本可能有助于了解平台/版本,但我90%确定您根本不需要
    P1
    (或冒号)。可能的重复可能有助于了解平台/版本,但我90%确定您根本不需要
    P1
    (或冒号)。可能的重复