You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Aginity Workbench创建Netezza存储过程报BEGIN_PROC未终止错误

报错根因

触发该错误的原因有两点:

  • Aginity Workbench默认以;作为单条SQL的结束分隔符,你编写的存储过程内部包含多个分号,工具会在读取到第一个分号时就截断SQL,将不完整的语句片段提交给PureData System for Analytics引擎执行。引擎识别到BEGIN_PROC标记后找不到匹配的结束标识,直接抛出unterminated BEGIN_PROC string错误。
  • 原存储过程存在冗余语法:NZPLSQL规范中,DECLARE变量定义块结束后无需额外嵌套一层BEGIN/END块,多余嵌套会提升解析异常概率。
解决方法

按以下步骤操作即可正常创建存储过程:

  1. 临时修改查询窗口的语句分隔符:在Aginity Workbench查询窗口顶部找到分隔符设置项,将默认的;修改为//(或其他不会在存储过程代码中出现的字符),避免工具提前截断SQL语句。
  2. 使用修正后的存储过程代码执行创建:
CREATE OR REPLACE PROCEDURE OID_DB.SP_TEST_1(CHARACTER VARYING(8))
RETURNS CHARACTER VARYING(ANY)
LANGUAGE NZPLSQL AS
BEGIN_PROC
DECLARE 
   PV_YYYYMMDD ALIAS FOR $1; 
RETURN 'TEST_OK'; 
END_PROC;
//
  1. 创建完成后,将语句分隔符改回默认的;,即可正常执行其他普通SQL语句。存储过程创建成功后,可通过CALL OID_DB.SP_TEST_1('测试参数');验证执行效果,正常会返回TEST_OK。

内容的提问来源于stack exchange,提问作者Jeniffer Lorena Guillen Castro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.03 07:03:32