【问题标题】:Aginity Stored Procedure ErrorAginity 存储过程错误
【发布时间】:2015-05-10 02:29:24
【问题描述】:

这可能是一个外行的问题。我仍然在网上冲浪,但无法通过。 在 Aginity 中运行简单存储过程时出现以下错误

CREATE OR REPLACE PROCEDURE test() 
RETURNS VARCHAR(10) 
LANGUAGE NZPLSQL AS
BEGIN_PROC
DECLARE 
BEGIN 
RETURN "SUCCESS" 
END
END_PROC;

运行上面的时候没有报错。

只有在如下执行时才会报错

EXECUTE TEST();

错误:

ERROR [01000] NOTICE:  plpgsql: ERROR during compile of TEST near line 3

ERROR [HY000] ERROR:  missing ; at end of SQL statement

谢谢

【问题讨论】:

    标签: stored-procedures netezza


    【解决方案1】:
    CREATE OR REPLACE PROCEDURE test() 
    RETURNS VARCHAR(10) 
    LANGUAGE NZPLSQL AS
    BEGIN_PROC
    -- No need a DECLARE when you don have to declare anything
    BEGIN 
    RETURN "SUCCESS" ; -- you just need a semi colon!
    END; -- also here
    END_PROC;
    

    【讨论】:

    • 感谢您的回复。但是为什么它在创建程序时没有给出任何错误,并且关于半冒号放置是否有特定的规则。我做了另一个存储过程,但给出了不同的错误。因此,如果您能就 Netezza 存储过程提出任何好的指南参考,那就太好了。
    • @MPH 我很了解 Oracle 存储过程,但不是 Netezza 版本,虽然我听说过。
    • 这里是stored procedure docs。规则是,您需要在完成语句的任何位置放置一个分号。例如,BEGIN 本身不是语句,而是与 BEGIN...END 块一起使用,因此不需要分号。 END 会。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-01
    • 2016-02-08
    • 2023-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多