【问题标题】:how can I create a stored procedure sql workbench that uses a redshift database?如何创建使用 redshift 数据库的存储过程 sql 工作台?
【发布时间】:2020-06-08 05:30:06
【问题描述】:

是否可以在使用 redshift 数据库的 sql 工作台上创建存储过程?

我试着把在互联网上找到的一些程序放在这样一个

CREATE OR REPLACE FUNCTION proc_sample RETURN INTEGER
IS
  l_result INTEGER;
BEGIN
  SELECT max(col1) INTO l_result FROM sometable;
  RETURN l_result;
END;

但我得到一个错误 光标不在语句内

请帮忙。

【问题讨论】:

    标签: amazon-redshift sql-workbench-j


    【解决方案1】:

    这是我对 Redshift 存储过程的翻译:

    CREATE OR REPLACE PROCEDURE proc_sample (
          l_result  OUT  INTEGER
    )
    LANGUAGE plpgsql
    AS $$
    BEGIN
      SELECT max(col1) INTO l_result FROM sometable;
    END
    $$;
    

    你在 Redshift 中调用这个存储过程如下:

    BEGIN; CALL proc_sample(); END;
    --  l_result
    -- ----------
    --        99
    

    欲了解更多信息,请参阅"Overview of stored procedures in Amazon Redshift"

    【讨论】:

      【解决方案2】:

      你不能在函数中使用 from 子句。您必须使用带有 out 子句的参数的过程。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-03-07
        • 1970-01-01
        • 2019-09-13
        • 1970-01-01
        • 1970-01-01
        • 2011-12-16
        • 1970-01-01
        • 2020-03-15
        相关资源
        最近更新 更多