【问题标题】:Creating stored procedure in DB2在 DB2 中创建存储过程
【发布时间】:2015-06-19 05:51:12
【问题描述】:

我正在尝试在 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

在 Data Studio 中,它从“P1: BEGIN”行本身开始显示错误。 此过程必须在 IBM Data Studio 4.1 中创建 任何人都可以检查我是否遗漏了任何内容

【问题讨论】:

标签: stored-procedures db2


【解决方案1】:

您在在线数据工作室中遇到错误的原因 P1: BEGIN 是您可能正在尝试从 SQL 编辑器创建 SP 而不是从常规编辑器创建它。

这是你应该做的:

  1. 从数据源浏览器,连接到您的数据库。
  2. 在 Data Project Explorer 中,使用您从 DSE 连接的连接创建一个新的数据开发项目。
  3. 现在在您的项目下,右键单击存储过程,然后单击新建 使用任何模板或只使用默认模板,然后您将看到一个新的例程编辑器打开。

我测试了这个简单的代码:

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 末尾不需要;

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-06
    • 2016-05-20
    • 2016-08-29
    • 1970-01-01
    • 2021-08-03
    • 1970-01-01
    相关资源
    最近更新 更多