【发布时间】:2021-10-31 01:51:37
【问题描述】:
专门用于 SQL 存储过程。我是否应该在每个存储过程的开头包含它,例如
--#SET TERMINATOR @
CREATE PROCEDURE Name
LANGUAGE SQL
BEGIN
SELECT * FROM Table
END
@
【问题讨论】:
专门用于 SQL 存储过程。我是否应该在每个存储过程的开头包含它,例如
--#SET TERMINATOR @
CREATE PROCEDURE Name
LANGUAGE SQL
BEGIN
SELECT * FROM Table
END
@
【问题讨论】:
这不是语句,而是更改语句终止符的指令。
如果您要运行的语句包含 compound statement(与 BEGIN ... END)包含由 ; 分隔的其他“简单”语句,则必须使用不同于默认语句终止符 (;) 的另一个语句终止符。复合语句中的语句分隔符无法更改,因此您必须帮助 DB2 命令行处理器了解您的整个“复杂”语句的结束位置。
顺便说一句,您的陈述包含许多错误。 BEGIN ... END 块内的每条语句(包括最后一条)都必须用; 分隔,并且不能在例程中“SELECT to nowhere”。
【讨论】: