带有 ^ 的 Netezza 存储过程错误发现“”(在字符 76 处)未终止的 BEGIN_PROC 字符串

Posted

技术标签:

【中文标题】带有 ^ 的 Netezza 存储过程错误发现“”(在字符 76 处)未终止的 BEGIN_PROC 字符串【英文标题】:Netezza stored procedure error with ^ found "" (at char 76) unterminated BEGIN_PROC string 【发布时间】:2017-05-26 19:24:14 【问题描述】:

我刚开始在 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;

错误:

^ 找到“”(在 char 76 处)未终止的 BEGIN_PROC 字符串

非常感谢。

【问题讨论】:

Lars G Olsen 发布的答案对我不起作用,右键单击我的 Aginity 版本时没有这样的选项。无论如何,我更喜欢我的客户端只执行到最近的分号,为了在不改变模式的情况下解决您的特定问题,您可以按 ctrl+f5 将过程编译为单批。 【参考方案1】:

你是不是偶然执行了从 aginity 创建的?

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

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

【讨论】:

上面@Juan 的评论确实有效。但是,我确实选择了更改设置,在 Aginity Workbench for PureData System for Analytics 版本 4.8.0.2551 中对我有用:(1) 右键单击​​背景,然后选择 Options。 (2) 点击Query kind下拉菜单,将Ordinary SQL改为SP/Function【参考方案2】:

解决这个问题创建存储过程 单击右键>>选项>> 查询类型:SP/Function

好的 2. CTRL + F5

【讨论】:

以上是关于带有 ^ 的 Netezza 存储过程错误发现“”(在字符 76 处)未终止的 BEGIN_PROC 字符串的主要内容,如果未能解决你的问题,请参考以下文章

Netezza 存储过程 DB_NAME 作为参数

pypyodbc 从 python 在 netezza 数据库中创建存储过程的错误

存储过程中从一个表到另一个表的 Netezza 更新错误

如何在 Netezza 中运行代码块

在 IBM netezza SQL 数据库中运行存储过程的错误

在 netezza 存储过程中立即执行不会向表中插入值