teradata - SPL1048:E(L5),意外的文本 ';' 代替 SPL 语句
问题描述
根据 Teradata文档,BEGIN 和 END 控制语句可以有标签。但是,尝试创建以下存储过程
create multiset table table_1
(
id int not null,
val int
) unique primary index(id);
create procedure test_sp(IN p1 int, IN p2 INT)
L1: BEGIN
INSERT INTO table_1 VALUES(:p1,:p2);
END L1;
给我以下错误:
SPL1048:E(L5),意外的文本 ';' 代替 SPL 语句。SPL1027:E(L5),缺少/无效的 SQL 语句'E(3707):语法错误,预期在 ';' 之间有类似 'END' 关键字 并且 CREATE PROCEDURE 命令失败。
没有标签“L1”,代码工作得很好。另一方面,在过程中添加标签是可行的:
replace procedure test_sp(IN p1 int, IN p2 INT)
BEGIN
L1: BEGIN
INSERT INTO table_1 VALUES(:p1,:p2);
END L1;
END;
这是配置设置,还是文档中的错误?
解决方案
推荐阅读
- javascript - 反应路由器总是显示 NotFound 组件
- php - 如何解决此解码和语法错误
- python-3.x - 安装 pip install 'python-decouple' 时出错
- python - 解析熊猫数据框中的多个嵌套文件
- java - 使用 @JsonIdentityInfo 时空 id 的无限递归
- r - 如何在具有多个键的数据表中进行完全外部联接?
- c# - 如何在 Checkstate 中保存 ASP 复选框状态并在 postba 后检索值
- typescript - Firebase Cloud Functions:在 try catch 块中引发 Https 错误
- python - 创建虚拟环境时是否有某种方法可以安装特定的 Python 版本
- python - 改善神经网络区分红色和蓝色的方法?