Stored procedures Netezza存储过程错误,为^found"&引用;(字符76处)未终止的BEGIN_PROC字符串

Stored procedures Netezza存储过程错误,为^found"&引用;(字符76处)未终止的BEGIN_PROC字符串,stored-procedures,netezza,Stored Procedures,Netezza,我刚开始在Netezza上工作,我想创建一个简单的存储过程,使用游标或临时表(如MS SQL)遍历一个表,无论如何,这个简单的任务从错误开始,我对此一无所知,下面是代码: CREATE OR REPLACE PROCEDURE My_FirstSP() RETURNS INT4 LANGUAGE NZPLSQL AS BEGIN_PROC DECLARE ID int; CREATE TABLE RX5201901 ( ID INT IDENTITY(1,1),

我刚开始在Netezza上工作,我想创建一个简单的存储过程,使用游标或临时表(如MS SQL)遍历一个表,无论如何,这个简单的任务从错误开始,我对此一无所知,下面是代码:

CREATE OR REPLACE PROCEDURE My_FirstSP() RETURNS INT4 LANGUAGE NZPLSQL AS
BEGIN_PROC
DECLARE
ID int;

CREATE TABLE RX5201901
(
       ID INT IDENTITY(1,1),  
       CreatedOn DATETIME
);
END_PROC;
错误:

^在字符76处找到“”未终止的BEGIN\u PROC字符串


非常感谢。

您是否碰巧从aginity执行了创建

在这种情况下,您需要右键单击背景并将设置更改为“过程模式”


否则netezza只在两个最近的分号(;)之间提交sql。

解决此问题以创建存储过程 单击右键>>选项>> 查询种类:SP/函数

嗯 2.CTRL+F5


Lars G Olsen发布的答案对我不起作用,右键单击我的Aginity版本时没有这样的选项。无论如何,我希望我的客户机只执行最接近的分号,为了解决您的特定问题而不改变模式,您可以按ctrl+f5将过程编译为单个批处理。上面@Juan的注释确实有效。然而,我确实选择了更改设置,以下是在Aginity Workbench for PureData System for Analytics 4.8.0.2551版本中对我有效的方法:(1)右键单击背景,然后选择
选项
。(2) 单击
Query-kind
下拉列表,将其从
普通SQL
更改为
SP/Function