Aginity 存储过程错误
Posted
技术标签:
【中文标题】Aginity 存储过程错误【英文标题】:Aginity Stored Procedure Error 【发布时间】: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
谢谢
【问题讨论】:
【参考方案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 会。以上是关于Aginity 存储过程错误的主要内容,如果未能解决你的问题,请参考以下文章